Go 语言数据类型学习笔记
基本数据类型
Go 语言提供了以下基本数据类型:
- bool:布尔类型,true 或 false。
- string:字符串类型,用于存储文本数据。
- int、int8、int16、int32、int64:整数类型,分别表示不同字节长度的有符号整数。
- uint、uint8、uint16、uint32、uint64:整数类型,分别表示不同字节长度的无符号整数。
- float32、float64:浮点数类型,分别表示单精度和双精度浮点数。
- complex64、complex128:复数类型,分别表示 32 位和 64 位复数。
示例
goCopy Codepackage main
import "fmt"
func main() {
var a bool = true
var b string = "hello world"
var c int = 10
var d uint = 20
var e float32 = 3.14
var f complex64 = 1 + 2i
fmt.Printf("a = %t\n", a)
fmt.Printf("b = %s\n", b)
fmt.Printf("c = %d\n", c)
fmt.Printf("d = %d\n", d)
fmt.Printf("e = %.2f\n", e)
fmt.Printf("f = %.2f + %.2fi\n", real(f), imag(f))
}
数组
数组是一种固定长度且类型相同的数据结构,可以在定义时初始化或者通过赋值进行修改。
示例
goCopy Codepackage main
import "fmt"
func main() {
var a [5]int = [5]int{1, 2, 3, 4, 5}
var b = [2]string{"hello", "world"}
c := [...]int{6, 7, 8, 9, 10}
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
a[2] = 100
fmt.Println("a:", a)
}
切片
切片是对数组的一个部分引用,也可以看作是动态数组。与数组不同,切片长度可变,因此可以动态地添加或减少元素。
示例
goCopy Codepackage main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
b := make([]string, 3)
b[0] = "hello"
b[1] = "world"
a = append(a, 6, 7, 8)
fmt.Println("a:", a)
fmt.Println("b:", b)
}
映射
映射是一种将键映射到值的数据结构,类似于 Python 中的字典。映射可以使用 make 函数创建,也可以在定义时初始化。
示例
goCopy Codepackage main
import "fmt"
func main() {
a := make(map[string]int)
a["apple"] = 1
a["banana"] = 2
a["orange"] = 3
fmt.Println("a:", a)
b := map[string]string{
"name": "Tom",
"email": "tom@example.com",
}
fmt.Println("b:", b)
}
结构体
结构体是一种自定义数据类型,可以包含多个不同类型的字段。与其他语言的类似概念不同,结构体没有继承和多态等特性。
示例
goCopy Codepackage main
import "fmt"
type person struct {
name string
age int
}
func main() {
var p1 person = person{name: "Tom", age: 20}
p2 := person{"Jack", 30}
fmt.Println("p1:", p1)
fmt.Println("p2:", p2)
p1.age = 21
p2.name = "John"
fmt.Println("p1:", p1)
fmt.Println("p2:", p2)
}
接口
接口定义了一组方法签名,实现这些方法的任何类型都可以被视为实现了该接口。接口可以嵌套在其他接口或结构体中。
示例
goCopy Codepackage main
import "fmt"
type animal interface {
speak()
}
type cat struct{}
func (c cat) speak() {
fmt.Println("Meow")
}
type dog struct{}
func (d dog) speak() {
fmt.Println("Woof")
}
func main() {
var a animal
a = cat{}
a.speak()
a = dog{}
a.speak()
}
以上就是 Go 语言数据类型学习笔记的内容,希望对你有所帮助。