Go内置了以下基本类型:
布尔
bool
字符串
string
整数
intint8int16int32int64
uintuint8uint16uint32uint64
字节
byte,uint8的别名
Unicode
rune,int32别名
浮点
float32float64
复数
complex64complex128
运行结果如下:
例子展示了几种不同类型变量的用法。 注意到,跟 import语句 一样,变量申明可以批量写到一个代码块里。
一般来说,int、uint以及uintptr类型在 位机器上是 位长; 在 位机器上则是 位长。 需要使用整数时, 类型是首选, 除非你有特别的理由一定要用定长或者无符号类型。
零值
变量申明时没有显式赋初始值,则默认是“零”。
不同的类型有不同的“零”:
对于数值类型是 ;
对于布尔类型是 ;
对于字符串类型是 (空字符串);
运行结果如下:
类型转换
表达式(expression) 将值 转换成类型 , 这就是所谓的类型转换(type conversions)。
这是一些数值类型转换:
或者简写成:
跟C语言有所不同,Go在不同类型之间赋值,需要显式类型转换。 不信,将下面例子中 和 类型转换移除,看看发生什么?
运行结果如下:
类型推理
变量类型通过右边的值推理而来。
如果申明右边的值是有类型的,那么新变量也是一样的类型:
如果右边只是一个数值常量,没有具体类型,那么新变量可能是int、float64以及complex128三种类型中的一种,取决于常量的精度。
接下来做个实验吧! 改变例子中 的初始值,观察它是如何影响变量类型的:
下一步
下一节 我们一起来看看Go语言 常量 。
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :
小菜学编程
领取专属 10元无门槛券
私享最新 技术干货