Go语言 数据类型

数据类型主要用于声明变量和函数。Go 语言中有丰富的数据类型,除了整型、浮点型、布尔型和字符串基本类型,还有数组、切片、结构体、函数、map、channel等派生类型。

 

1. Go 语言的数据类型

序号 类型和描述
1

布尔类型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。

  • 布尔类型变量的默认值为 false。
  • Go 语言中不允许将整型强制转换为布尔型。
  • 布尔型无法参与数值运算,也无法与其他类型进行转换。
2

数字类型

  • 整型
  • 浮点型
3

字符串类型

  • 字符串就是一串固定长度的字符连接起来的字符序列。
  • Go 语言的字符串以原生数据类型出现,使用字符串就像使用其他原生数据类型。
  • Go 语言里的字符串的内部实现使用 UTF8 编码。
4

派生类型:

  • (a) 指针(pointer)
  • (b) 数组(array)
  • (c) 结构(struct)
  • (d) 通道(channel)
  • (e) 函数(function)
  • (f) 切片(slice)
  • (g) 接口(interface)
  • (h) 字典(map)

 

2. 整形

Go 也有基于架构的类型,即它的取值范围由操作系统的架构决定的,例如:int、uint 和 uintptr。如果编译运行在 64 位操作系统上,那么它的长度为 64 位;如果编译运行在 32 位操作系统上,那么它的长度为 32 位。

序号 类型和描述
1 uint8
无符号 8 位整型 (0 到 255)
2 uint16
无符号 16 位整型 (0 到 65535)
3 uint32
无符号 32 位整型 (0 到 4294967295)
4 uint64
无符号 64 位整型 (0 到 18446744073709551615)
5 int8
有符号 8 位整型 (-128 到 127)
6 int16
有符号 16 位整型 (-32768 到 32767)
7 int32
有符号 32 位整型 (-2147483648 到 2147483647)
8 int64
有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

 

3. 浮点型

序号 类型和描述
1 float32
IEEE-754 32位浮点型数
2 float64
IEEE-754 64位浮点型数
3 complex64
32 位实数和虚数
4 complex128
64 位实数和虚数

 

4. 其他数字类型

以下列出了其他更多的数字类型:

序号 类型和描述
1 byte
类似 uint8
2 rune
类似 int32
3 uint
32 或 64 位
4 int
与 uint 一样大小
5 uintptr
无符号整型,用于存放一个指针

 

5. 字符串

Go 语言中的字符串以原生数据类型出现,使用字符串就像使用其它原生数据类型(int、bool、float64 等)一样。 Go 语言里的字符串的内部实现使用 UTF-8 编码。 字符串的值为双引号(")中的内容,可以在 Go 语言的源码中直接添加非 ASCII 码字符,例如:

s1 := "hello"
s2 := "你好"

 

6. 字符串转义符

Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示:

转义符    含义
\r    回车符(返回行首)
\n    换行符(直接跳到下一行的同列位置)
\t    制表符
\'    单引号
\"    双引号
\\    反斜杠

Go语言 变量:变量是在编程语言中通过名字可以访问的一块内存空间,里面存储的数据可以在程序运行时修改。这个变量的名字称为变量名。Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的语法:var identifier typ。可以一次声明多个变量...