go语言学习 - 基本数据类型

golang

基本数据类型介绍

类型就是值的模版,值必须满足这个模版,不然就会报错

Go支持如下内置基本类型:

  • 一种内置布尔类型:bool。

  • 11种内置整数类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、int、uint和uintptr。

  • 两种内置浮点数类型:float32和float64。

  • 两种内置复数类型:complex64和complex128。

  • 一种内置字符串类型:string。

注意:

  1. int8 int16后面的数字代表此类型的容量/尺寸。8就是8位/bit。

  2. uint8 u开头代表非负整数。uint8范围就是0~255,int8范围-128~127.

  3. uintptr、int以及uint类型的值的尺寸依赖于具体编译器实现。 通常地,在64位的架构上,int和uint类型的值是64位的;在32位的架构上,它们是32位的。 编译器必须保证uintptr类型的值的尺寸能够存下任意一个内存地址。

  4. 一个complex64复数值的实部和虚部都是float32类型的值。 一个complex128复数值的实部和虚部都是float64类型的值。

类型声明

我们可以使用type声明定义更多自定义布尔和字符串类型。

1
2
3
4
5
6
7
8
9
10
11
// 一些类型定义声明
type status bool // status和bool是两个不同的类型,但是最终结果都是bool
type MyString string // MyString和string是两个不同的类型
type Id uint64 // Id和uint64是两个不同的类型
type real float32 // real和float32是两个不同的类型

// 一些类型别名声明
type boolean = bool // boolean和bool表示同一个类型
type Text = string // Text和string表示同一个类型
type U8 = uint8 // U8、uint8和 byte表示同一个类型
type char = rune // char、rune和int32表示同一个类型

零值

每种类型都有一个零值。一个类型的零值可以看作是此类型的默认值。

  • 一个布尔类型的零值表示真假中的假。

  • 数值类型的零值都是零(但是不同类型的零在内存中占用的空间可能不同)。

  • 一个字符串类型的零值是一个空字符串。