Go语言学习-数据类型
约 910 字大约 3 分钟
2024-10-25
前言
Go语言提供了丰富且强大的数据类型,这些类型可以分为基本类型和复合类型两大类。下面是Go语言中数据类型的详细介绍:
序号 | 类型和描述 |
---|---|
1 | 布尔型 布尔型的值只可以是常量 true 或者 false 。一个简单的例子:var b bool = true 。 |
2 | 数字类型 整型 int 和浮点型 float32 、float64 ,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 |
3 | 字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。 |
4 | 派生类型: 包括: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct) (d) Channel 类型 (e) 函数类型 (f) 切片类型 (g) 接口类型(interface) (h) Map 类型 |
这个表格列出了Go语言中的一些主要数据类型及其简要描述。
一、基本数据类型
1.1 数字类型
- 整数类型
- 有符号整数:
int8
,int16
,int32
,int64
- 无符号整数:
uint8
(别名byte
),uint16
,uint32
,uint64
,uintptr
(用于存储指针)
- 有符号整数:
- 浮点数类型
float32
,float64
- 复数类型
complex64
(32位实部和虚部)complex128
(64位实部和虚部,为默认类型)
提示
go 1.9版本对于数字类型,无需定义int及float32、float64,系统会自动识别。
1.2 布尔类型
bool
只能是true
或false
,默认为 false。
1.3 字符串类型
string
表示一系列字符,使用UTF-8编码
1.4 空类型
interface{}
代表任何类型error
是一个预定义的接口类型,通常用于错误处理
二、复合数据类型
2.1 数组
定长集合,所有元素类型相同
var arr [5]int // 定义一个包含5个整数的数组
2.2 切片
动态数组,可以改变长度
slice := []int{1, 2, 3} // 定义一个整数切片
2.3 结构体
用户自定义的数据类型,可以包含不同类型的字段
type Person struct { Name string Age int }
2.4 指针
存储变量的内存地址
var p *int // 定义一个指向整数的指针
2.5 函数
可以作为值使用,可以赋值给变量或传递给其他函数
func add(x, y int) int { return x + y } // 定义一个函数
2.6 映射(Map)
键值对的集合,键必须是可比较的类型
m := map[string]int{"one": 1, "two": 2} // 定义一个映射
2.7 通道(Channel)
用于goroutine之间的通信
ch := make(chan int) // 创建一个整数通道
2.8 接口(Interface)
定义方法的集合,任何实现了接口中所有方法的类型都自动实现了该接口
type Writer interface { Write([]byte) (int, error) }
三、特殊类型
- nil 是所有引用类型(指针、切片、映射、通道、函数和接口)的零值,表示没有值或空引用。
以上数据类型可以组合使用,创建出复杂的数据结构和功能丰富的应用程序。Go语言的设计鼓励简洁和高效,因此其数据类型系统虽然强大但并不复杂。