Go 语言提供了以下基本数据类型:
bool:表示布尔值,只能是 true 或 false。
-
数值类型:
- 整数类型:int8、int16、int32、int64、int(根据平台位数选择)、uint8、uint16、uint32、uint64、uint(根据平台位数选择)。
- 浮点数类型:float32、float64。
- 复数类型:complex64、complex128。
字符串类型:用于表示文本数据,使用双引号或反引号括起来。
-
派生类型:
- 指针类型(Pointer):表示变量的内存地址。
- 数组类型(Array):具有固定长度且类型相同的元素序列。
- 切片类型(Slice):表示可变长度的元素序列。
- 字典类型(Map):表示键值对集合。
- 通道类型(Channel):用于协程之间的通信。
- 结构体类型(Struct):表示字段集合。
- 接口类型(Interface):表示方法集合。
函数类型:表示函数的类型,可以用作函数参数或返回值。
除了以上基本类型,Go 语言还提供了类型别名(type alias)和空接口类型(interface{})等特殊类型。另外,Go 语言还支持用户自定义类型,可以使用 type
关键字进行定义。
需要注意的是,Go 语言是静态类型语言,变量在声明时就需要指定其类型,并且类型一旦声明后就不能改变。
当涉及到Go语言的数据类型时,以下是一些例子:
- bool类型:
var flag bool = true
- 整数类型:
var num1 int = 10
var num2 int64 = 1000000000
- 浮点数类型:
var pi float32 = 3.14159
var price float64 = 19.99
- 字符串类型:
var message string = "Hello, world!"
var multiLineMessage string = `This is a multi-line
string using backticks.`
- 指针类型:
var ptr *int
num := 42
ptr = &num
- 数组类型:
var numbers [5]int = [5]int{1, 2, 3, 4, 5}
- 切片类型:
var names []string = []string{"Alice", "Bob", "Charlie"}
- 字典类型:
var ages map[string]int = map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 35,
}
- 通道类型:
var ch chan int = make(chan int)
- 结构体类型:
type Person struct {
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
- 接口类型:
type Shape interface {
Area() float64
Perimeter() float64
}
type Rectangle struct {
Width float64
Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
func (r Rectangle) Perimeter() float64 {
return 2 * (r.Width + r.Height)
}
var rect Shape = Rectangle{Width: 5, Height: 3}
- 函数类型:
func add(a, b int) int {
return a + b
}
var operation func(int, int) int
operation = add
以上只是一些基本的示例,展示了Go语言中不同数据类型的用法。在实际的开发中,你可以根据具体需求选择适当的数据类型来存储和操作数据。