1 package main
2
3 import "fmt"
4
5 func main() {
6 /*
7 Go语言的数据类型:
8 1.基本数据类型:
9 布尔类型:bool
10 取值:true,false
11 数值类型:
12 整数:int
13 有符号:最高位表示符号位,0正数,1负数,其余位表示数值
14 int8:(-128 到 127)
15 int16:(-32768 到 32767)
16 int32:(-2147483648 到 2147483647)
17 int64:(-9223372036854775808 到 9223372036854775807)
18 无符号:所有的位表示数值
19 uint8: (0 到 255)
20 uint16:(0 到 65535)
21 uint32:(0 到 4294967295)
22 uint64: (0 到 18446744073709551615)
23
24 int, uint
25
26 byte:uint8
27 rune:int32
28 浮点:生活中的小数
29 float32,float64
30 复数:complex,
31 字符串:string
32 2.复合数据类型
33 array,slice,map,function,pointer,struct,interface,channel。。。
34 */
35
36 //1.布尔类型
37 var b1 bool
38 b1 = true
39 fmt.Printf("%T,%t\n", b1, b1) // bool,true
40 b2 := false
41 fmt.Printf("%T,%t\n", b2, b2) // bool,false
42
43 //2.整数
44 var i1 int8
45 i1 = 100
46 fmt.Println(i1)
47 var i2 uint8
48 i2 = 200
49 fmt.Println(i2)
50
51 var i3 int
52 i3 = 1000
53 fmt.Println(i3)
54 //语法角度:int,int64不认为是同一种类型
55 //var i4 int64
56 //i4 = i3 //cannot use i3 (type int) as type int64 in assignment
57
58 var i5 uint8
59 i5 = 100
60 var i6 byte
61 i6 = i5
62 fmt.Printf("%T,%v\n", i6, i6) // uint8,100
63 fmt.Println(i5, i6) // 100 100
64
65 var i7 = 100
66 fmt.Printf("%T,%d\n", i7, i7) // int,100
67
68 //浮点
69 var f1 float32
70 f1 = 3.14
71 var f2 float64
72 f2 = 4.67
73 fmt.Printf("%T,%.2f\n", f1, f1) // float32,3.14
74 fmt.Printf("%T,%.3f\n", f2, f2) // float64,4.670
75 fmt.Println(f1) // 3.14
76
77 // 小数默认是 float64
78 var f3 = 2.55
79 fmt.Printf("%T\n", f3) // float64
80
81 }