Go语言学习:基本类型与转换详解

0 下载量 124 浏览量 更新于2024-08-30 收藏 79KB PDF 举报
本文主要介绍了Golang编程语言中的基本类型、类型转换、类型别名以及变量的默认值,是Golang学习笔记的第二部分。 在Golang中,基本类型是编程中最基础的数据单元,包括: 1. **布尔类型**(bool):占用1个字节,有两个可能的值:`true` 和 `false`,默认值为 `false`。不能将非0值视为 `true`,避免数字与布尔值混淆。 2. **字节类型**(byte):实际上是 `uint8` 的别名,占用1个字节。 3. **rune类型**:等同于 `int32`,用于表示Unicode码点,占用4个字节。 4. **整数类型**:包括 `int` 和 `uint`,其长度取决于运行平台(32位或64位)。还有对应的8、16、32和64位整数类型,如 `int8`、`uint16` 等,它们有各自的取值范围。 5. **浮点数类型**:`float32` 和 `float64` 分别对应C语言中的 `float` 和 `double`,分别精确到7位和15位小数。 6. **复数类型**:`complex64` 和 `complex128` 分别占8字节和16字节。 7. **无符号整数类型**:例如 `uint` 和 `uint64`,不包含负数。 8. **指针类型**(uintptr):用以存储指针的32位或64位整数,但不能直接操作。 9. **数组类型**(array):固定长度的值类型。 10. **结构体类型**(struct):由多个不同类型的值组合而成的复合类型。 11. **字符串类型**(string):表示文本,是值类型。 12. **切片类型**(slice):引用类型,类似动态数组,可以动态调整大小。 13. **映射类型**(map):键值对的集合,引用类型。 14. **通道类型**(channel):用于goroutine之间的同步通信。 15. **接口类型**(interface):定义一组方法签名,允许不同类型的值在满足接口条件时交互。 16. **函数类型**(function):可以作为参数或返回值。 **类型转换** 在Go语言中是显式的,即需要明确指定转换的目标类型。例如,将十六进制数转换为 `uint8` 类型,或将浮点数转换为 `int` 类型。转换仅发生在兼容的类型之间,如各类整型之间是不兼容的,不能直接转换。 **类型别名** 允许创建一个已存在类型的别名,例如 `type t_str string`,`t_str` 就是 `string` 的别名。 **类型默认值** 当声明变量但未赋值时,会赋予类型默认的零值: - **布尔类型**:`false` - **整数类型**:`0` - **浮点数类型**:`0.0` - **字符串类型**:`""`(空字符串) - **指针、函数、接口、切片、通道、映射**:`nil` 保留字 `break` 是Golang中的控制流程关键字,用于跳出循环或switch语句。 这些基础知识是编写Go程序的基础,理解并掌握它们对于学习Go语言至关重要。通过深入理解这些概念,开发者可以有效地编写出高效、安全的Go代码。