GO语言常见数据类型

  • Post author:
  • Post category:其他



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 版权协议,转载请附上原文出处链接和本声明。