变量声明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
var a int a = 1
var b int = 2
var c = 3
d := 4 fmt.Println(a, b, c, d)
var e,f,g int e,f,g = 5,6,7 fmt.Println(e,f,g)
h,i,j := 8,9,10 fmt.Println(h,i,j)
var ( k = 11 l = 12 ) fmt.Println(k,l)
|
– 定义在{}中的是局部变量 –
– 定义在{}外的是全局变量 –
数据类型
底层存储空间和操作系统无关
基本数据类型
- 数值型
- 整型
- int
- int8 (-2的7次方
2的7次方-1 | -128127)
- int16 (-32768~32767)
- int32 (-2147483648~2147483647)
- int64 (-2的63次方~2的63次方-1)
- uint
- uint8 (0
2^8-1 | 0255)无符号整型最小为0 首位不表示符号
- uint16 同上
- uint32 同上
- uint64 同上
- byte
- 浮点型
- 字符型
- 布尔型
- 字符串
其他整数类型
- int
- 32位系统默认为4字节 -2^31~2^31-1
- 64位系统默认为8字节 -2^63~2^63-1
- uint
- 32位同上 0~2^32-1
- 64位同上 0~2^64-1
- rune
- byte
浮点型
浮点类型底层存储:
符号位 + 指数位 + 尾数位,尾数位只是存了个大概,很可能发生精度损失
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| var num1 float32 = 3.14
var num2 float32 = -3.14
var num3 float32 = 314E-2
var num4 float32 = 314E2
var num5 float32 = 314e2
var num6 float64 = 314e2 fmt.Println(num1, num2, num3, num4, num5, num6)
var num7 float32 = 618.0000000618 var num8 float64 = 618.0000000618 fmt.Println(num7, num8)
var num9 = 3.14
|
字符型
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
var c1 byte = 'a' fmt.Println(c1)
var c2 int = '北' fmt.Println(c2)
fmt.Printf("c2的值为: %c",c2)
|
转义字符
1 2 3 4 5 6 7 8 9 10
| fmt.Println("aaaa\nbbbb")
fmt.Println("aaaaa\bb")
fmt.Println("aaaaa\rbbb")
fmt.Println("aaaaa\tbbb")
fmt.Println("aaa\"bbb'ccc\\ddd")
|
布尔类型
占用一个字节
1 2
| var flag1 bool = true var flag2 bool = 5 > 10
|
字符串类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| var s1 string = "Hello World" fmt.Println(s1)
var s2 string = "Hello world" fmt.Println(s2[0])
fmt.Println(s2)
var s3 string = `Hello World` fmt.Println(s3)
var s4 string = "Hello " + "World" fmt.Println(s4) s4 += s4 fmt.Println(s4)
var s5 string = "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello" + "World" + "Hello"
|
基本数据类型的默认值
- 整型 = 0
- 浮点型 = 0
- 布尔型 = false
- 字符串 = “”
数据类型检测
格式化输出 fmt.Printf()
格式化变量的类型 %T
1 2
| var num1 byte = 10 fmt.Printf("num1对应的类型是:%T",num1)
|