Go的基本类型 ( Basic Types )
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 代表一个 Unicode 码
float32 float64
complex64 complex128
int, uint 和 uintptr 类型在32位的系统上一班是32位,而在64位系统上是64位的。
当我们需要使用一个整数类型时,应该首选 int,除非在特别的情况下才会使用定长整数类型或者无符号整数类型。
eg: 当需要标识用户ID的时候(ID为非负数)那么则会使用到 uint 类型
Go的类型转换
表达式 T ( V ) 将值 V 转换为类型 T 。
eg:
var num int = 1var uNum uintuNum = uint(num)
Go的类型推导
在定义一个变量却并不显式指定其类型时(使用 := 语法或者 var = 表达式语法),变量的类型由(等号)右侧的值推导出。
当右值定义了类型时,心变量的类型与其相同。
但是当右边包含了未指名类型的数字常量时,新的变量就可能是int/float64或complex128.这取决于常量的精度。
eg:
num := 1//orvar num = 1
Go的常量
常量的定义与变量类似,只不过使用 const 关键字。
常量可以是字符 / 字符串 / 布尔 或 数字类型 的值。
常量不能使用 := 语法定义。
eg:
const CONST_NUM = 1//orconst ( CONST_NUM = 1 CONST_NUM2 = 2 )
数值常量
数值常量是高精度的值。
一个未指定类型的常量 由上下文来决定其类型。
eg:
const ( BIG = 1 << 99 SMALL = BIG >> 99 )