GO语言常见数据类型
基础类型
布尔类型 bool
Go语言中的布尔类型与其他语言基本一致,关键字也为bool,可赋值为预定义的true和false,示例代码如下:
var v1 bool //声明后默认为false
v1 = true
v2 := (1 == 2) // v2也会被推导为bool类型
布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。以下的示例是一些错误的用法,会导致编译错误:
var b bool
b = 1 // 编译错误
b = bool(1) // 编译错误
以下的用法才是正确的:
var b bool
b = (1!=0) // 编译正确
fmt.Println("Result:", b) // 打印结果为Result: true
布尔可以做3种逻辑运算,&&(逻辑且),||(逻辑或),!(逻辑非)。
比较操作符:<,>, ==,!=, <=, >=。
整型 int8/byte/int16/int/uint/uintptr等
-
种类
-
有符号(负号)
int8 int16 int32 int64
-
无符号(无符号)
uint8 uint16 uint32 uint64
-
架构特定(取决于系统位数)
int uint
-
类型别名
Unicode字符rune类型等价int32
byte等价uint8 -
特殊类型
uintptr,无符号整型,
由系统决定占用位大小,足够存放指针即可,和C库或者系统接口交互
取值范围
具体类型 | 取值范围 |
---|---|
int8 | -128到127 |
uint8 | 0到255 |
int16 | -32768到32767 |
uint16 | 0到65535 |
int32 | -2147483648到2147483647 |
uint32 | 0到4294967295 |
int64 | -9223372036854775808到9223372036854775807 |
uint64 | 0到18446744073709551615 |
1.类型表示
需要注意的是,int和int32在Go语言里被认为是两种不同的类型,编译器也不会帮你做自动类型转换,比如以下的例子:
var value2 int32 //声明后默认为0
value1 := 64 //value1将会被自动推导为int类型
value2 = value1 //编译错误
使用强制类型转换可以解决这个编译错误:
版权声明:本文为yus501501原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。