這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
go語言的基本類型如下:
類型變數 執行個體代碼:
package mainimport "fmt"/*所有變數都可使用類型推斷 全域變數必須使用var可以var(),可並行,可推斷 局部變數不可使用var(),只可並行,可推斷*/func main() { //bool布爾型--先聲明後賦值 var a bool fmt.Println(a) a = true fmt.Println(a) //int8/uint8--聲明並賦值 var b int8 = -128 var b1 uint8 = 255 fmt.Println(b) fmt.Println(b1) //byte(uint8別名)類型--系統推測類型方式 var c1 = 255 var c2 byte = 255 fmt.Println(c1) fmt.Println(c2) //int16/uint16--最簡單賦值聲明方式 d1 := -32768 d2 := 65535 fmt.Println(d1) fmt.Println(d2) //int32(rune)/uint32--var並行 var e1, e2 int32 = -2147483648, 2147483647 var e3, e4 uint32 = 0, 4294967295 fmt.Println(e1, e2, e3, e4) //int64/uint64--var() var ( f1 int64 = -46744073709551616 f2, f3 uint64 = 18446744073709551615, 184467443709551615 ) fmt.Println(f1, f2, f3) //浮點型float32/float64--同類型顯示轉換 var g1 float32 = 1.1 var g2 = int8(g1) var g3 = uint8(g1) var g4 int16 = int16(g1) g5 := uint16(g1) // var g6 bool = int8(g1) fmt.Println(g1, g2, g3, g4, g5) //string類型 var h1 string = "myString" fmt.Println(h1)}
輸出如下:
falsetrue-128255255255-3276865535-2147483648 2147483647 0 4294967295-46744073709551616 18446744073709551615 1844674437095516151.1 1 1 1 1myString
類型別名:
package mainimport "fmt"/*類型別名*/func main() { //bool布爾型--先聲明後賦值 var a []int8 fmt.Println(a) var b [3]int8 fmt.Println(b) var c byte = 127 fmt.Println(c) var d rune = 2147483647 fmt.Println(d) var e 文本 = "myString" fmt.Println(e)}//byte uint8別名//rune int32別名//在本例type中實際做了轉換type ( byte int8 rune uint32 文本 string)
輸出如下:
[][0 0 0]1272147483647myString
數字轉文字格式設定、數字轉字串類型的十進位
package mainimport "fmt"import "strconv"func main() { var a int = 65 //將資料轉為文字格式設定,是用65表示的文本A b := string(a) fmt.Println(b) //數字-->>字串,返回數字 i 所表示的字串類型的十進位數。 c := strconv.Itoa(a) fmt.Println(c) c = "myString" fmt.Println(c)}
輸出如下:
A65myString
常量:
package mainimport "fmt"func main() { fmt.Println(a, b, c, d, e, f, g, h, i, j, k, m, n) fmt.Println(aa, bb, cc, dd, ee, ff, gg, hh)}const a int = 1const b, c, k = 'a', 'A', "hhehe"const ( d = 1 e = d + 1 f g, h = 2, 3 //l gh是2個是無法輸出的 m, n i = "aaa" j = len(i))const ( aa = "ggg" bb = iota cc dd = iota)const ( ee = iota ff gg = "aaa" hh)
輸出如下:
1 97 65 1 2 2 2 3 aaa 3 hhehe 2 3ggg 1 2 3 0 1 aaa aaa
運算子:
package mainimport "fmt"/*a-- a++是作為一個運算子,不是一個運算式而且-- ++只能在後邊*/func main() { a := 3 a-- fmt.Println(a) //指向a的p指標 var p *int = &a fmt.Println(*p)}
輸出如下:
22