学无止境,今天学习Go 语言数据类型
Go(或Golang)是一种静态类型语言,这意味着变量的数据类型必须显式声明,并且在运行时不能更改。以下是Go中的一些基本数据类型:
这里仅介绍最常用的类型
-
数值类型:
int
: 有符号整数类型,其大小取决于平台(32位或64位)。int8
、int16
、int32
、int64
: 具有特定位数的有符号整数。uint
: 无符号整数类型,取决于平台。uint8
、uint16
、uint32
、uint64
: 具有特定位数的无符号整数。float32
、float64
: 用于表示小数的浮点类型。
-
字符串:
string
: 表示字符序列。Go中的字符串是不可变的。
-
布尔:
bool
: 表示布尔值,可以是true
或false
。
-
派生类型:
array
: 表示具有相同类型元素的固定大小序列。slice
: 是数组的更灵活的版本,具有动态大小。map
: 表示无序的键值对集合。struct
: 允许通过将不同类型组合成一个实体来创建自己的数据类型。pointer
: 存储另一个变量的内存地址。
-
特殊类型:
byte
:uint8
的别名。rune
:int32
的别名。用于表示 Unicode 代码点。
以下是演示其中一些类型使用的示例:
package mainimport "fmt"func main() {// 数值类型var integer int = 42var floatingPoint float64 = 3.14// 字符串类型var message string = "Hello, Go!"// 布尔类型var isTrue bool = true// 数组var numbers [3]int = [3]int{1, 2, 3}// 切片var dynamicNumbers []int = []int{4, 5, 6}// 映射var person map[string]string = map[string]string{"name": "John", "age": "30"}// 结构体type Point struct {x, y int}var point Point = Point{1, 2}// 指针var pointerToInteger *int = &integerfmt.Println(integer, floatingPoint, message, isTrue, numbers, dynamicNumbers, person, point, *pointerToInteger)
}
此示例涵盖了Go中一些基本数据类型,但语言中还有更高级的类型和概念。随着您对Go的了解加深,您将遇到接口、通道等功能,这些功能有助于语言的简洁性和效率。