根本数据类型
整型
整型分为以下两个大类:按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8 就是咱们熟知的 byte 型,int16 对应 C 语言中的 short 型,int64 对应 C 语言中的 long 型。
类型 形容
uint8 无符号 8 位整型 (0 到 255)
uint16 无符号 16 位整型 (0 到 65535)
uint32 无符号 32 位整型 (0 到 4294967295)
uint64 无符号 64 位整型 (0 到 18446744073709551615)
int8 有符号 8 位整型 (-128 到 127)
int16 有符号 16 位整型 (-32768 到 32767)
int32 有符号 32 位整型 (-2147483648 到 2147483647)
int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
非凡整型
类型 形容
uint 32 位操作系统上就是 uint32,64 位操作系统上就是 uint64
int 32 位操作系统上就是 int32,64 位操作系统上就是 int64
uintptr 无符号整型,用于寄存一个指针
留神:在应用 int 和 uint 类型时,不能假设它是 32 位或 64 位的整型,而是思考 int 和 uint 可能在不同平台上的差别。
注意事项 获取对象的长度的内建 len() 函数返回的长度能够依据不同平台的字节长度进行变动。理论应用中,切片或 map 的元素数量等都能够用 int 来示意。在波及到二进制传输、读写文件的构造形容时,为了放弃文件的构造不会受到不同编译指标平台字节长度的影响,不要应用 int 和 uint。
package main
import “fmt”
// 整型
func main() {
var i1 = 101
fmt.Printf("%d\n", i1)
fmt.Printf("%b\n", i1) // 把十进制转换成二进制
fmt.Printf("%o\n", i1) // 把十进制转换成八进制
fmt.Printf("%x\n", i1) // 把十进制转换成十六进 x
// 八进制
i2 := 077
fmt.Printf("%d\n", i2)
// 十六进制
i3 := 0x1234567
fmt.Printf("%d\n", i3)
// 查看变量的类型
fmt.Printf("%T\n", i3)
// 申明 int8 类型的变量
i4 := int8(9) // 明确指定 int8 类型,否则默认 int 类型
fmt.Printf("%T\n", i4)
}
浮点型
Go 语言反对两种浮点型数:float32 和 float64。这两种浮点型数据格式遵循 IEEE 754 规范:float32 的浮点数的最大范畴约为 3.4e38,能够应用常量定义:math.MaxFloat32。float64 的浮点数的最大范畴约为 1.8e308,能够应用一个常量定义:math.MaxFloat64。
package main
import “fmt”
// 浮点数
func main(){
// math.MaxFloat32 // float32 最大值
f1 := 1.23456
fmt.Printf("%T\n", f1) // 默认 Go 语言中的小数都是 float64 类型
}
E:\go\src\qiaopengjun\day01\05float>go build
E:\go\src\qiaopengjun\day01\05float>05float.exe
float64
package main
import “fmt”
// 浮点数
func main(){
// math.MaxFloat32 // float32 最大值
f1 := 1.23456
fmt.Printf("%T\n", f1) // 默认 Go 语言中的小数都是 float64 类型
f2 := float32(1.23456)
fmt.Printf("%T\n", f2) // 显示申明 float32 类型
// f1 = f2 // float32 类型的值不能间接赋值给 float64 类型的变量
}
复数
complex64 和 complex128
var c1 complex64
c1 = 1 + 2i
var c2 complex128
c2 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)
复数有实部和虚部,complex64 的实部和虚部为 32 位,complex128 的实部和虚部为 64 位。
布尔值
Go 语言中以 bool 类型进行申明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。
留神:
布尔类型变量的默认值为 false。
Go 语言中不容许将整型强制转换为布尔型.
布尔型无奈参加数值运算,也无奈与其余类型进行转换。
package main
import “fmt”
// 布尔类型
func main(){
b1 := true
var b2 bool // 默认是 false
fmt.Printf(“%T value:%v\n”, b1, b1)
fmt.Printf(“%T value:%v\n”, b2, b2)
}
E:\go\src\qiaopengjun\day01\06bool>go build
E:\go\src\qiaopengjun\day01\06bool>06bool.exe
bool value:true
bool value:false
fmt 占位符
package main
import “fmt”
// fmt 占位符
func main(){
var n = 100
// 查看类型
fmt.Printf("%T\n", n)
fmt.Printf("%v\n", n)
fmt.Printf("%b\n", n)
fmt.Printf("%d\n", n)
fmt.Printf("%o\n", n)
fmt.Printf("%x\n", n)
var s = "Hello 沙河!"
fmt.Printf("字符串:%s\n", s)
fmt.Printf("字符串:%v\n", s)
fmt.Printf("字符串:%#v\n", s)
}