Golang学习之路一三基本数据类型
基本数据类型
-
int8 是有符号类型,uint8 是无符号类型
-
go 语言中不同类型的数据不能相加,会编译错误
类型 | 名称 | 长度 | 零值 | 说明 |
---|---|---|---|---|
bool | 布尔类型 | 1 | false | 值为 true 或 false, 不可以用数字代表 |
byte | 字节型 | 1 | 0 | uint8 |
rune | 字符类型 | 4 | 0 | 专用于存储 unicode 编码,等价于 uint32 |
int, uint | 整型 | 4 或 8 | 0 | 32 位或 64 位 |
int8, uint8 | 整型 | 1 | 0 | -128~127, 0~255 |
int16, uint16 | 整型 | 2 | 0 | -32768~32767, 0~65535 |
int32, uint32 | 整型 | 4 | 0 | -21 亿~21 亿, 0~42 亿 |
int64, uint64 | 整型 | 8 | 0 | |
float32 | 浮点型 | 4 | 0.0 | 小数位精确到 7 位 |
float64 | 浮点数 | 8 | 0.0 | 小数位精确到 15 位 |
complex64 | 复数类型 | 8 | 0 | |
complex128 | 复数类型 | 16 | 0 | |
uintptr | 整型 | 4 或 8 | 足以存储指针的 uint32 或 uint64 整数 | |
string | 字符串 | “” | utf-8 字符串 |
整型
package mainimport ("fmt""reflect"
)func main() {var v1 intv1 = 123v2 := 42fmt.Println(reflect.TypeOf(v1))fmt.Println(reflect.TypeOf(v2))
}
浮点型
package mainimport ("fmt""reflect"
)func main() {var f1 float32f1 = 12.5f2 := 13.66fmt.Println(reflect.TypeOf(f1))fmt.Println(reflect.TypeOf(f2))
}
布尔型
package mainimport ("fmt""reflect"
)func main() {// 只有true和false两个值var b1 boolb1 = falsefmt.Println(b1)// 可以使用 == 或 != 得到布尔值b2 := (1!=2)fmt.Println(reflect.TypeOf(b2))// 使用 ! 对布尔类型进行取反b3 := !b2fmt.Println(b3)
}
byte 字符型
package mainimport ("fmt""reflect"
)func main() {// 单引号赋值bytevar ch bytech = 'a'fmt.Println(ch)// 格式化输出fmt.Printf("ch = %c\n", ch)// uint8fmt.Println(reflect.TypeOf(ch))
}
字符串
package mainimport "fmt"func main() {// 字符串使用双引号赋值var s1 strings1 = "abc"fmt.Println(s1)// 取字符串中第一个字符ch := s1[0]fmt.Println(ch)// 反引号用来创建原生的字符串字面量(原格式输出)s2 := `hello
xxxxxworld
`fmt.Println(s2)
}