Go 语言数据类型学习笔记

基本数据类型

Go 语言提供了以下基本数据类型:

  • bool:布尔类型,true 或 false。
  • string:字符串类型,用于存储文本数据。
  • int、int8、int16、int32、int64:整数类型,分别表示不同字节长度的有符号整数。
  • uint、uint8、uint16、uint32、uint64:整数类型,分别表示不同字节长度的无符号整数。
  • float32、float64:浮点数类型,分别表示单精度和双精度浮点数。
  • complex64、complex128:复数类型,分别表示 32 位和 64 位复数。

示例

goCopy Code
package 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 Code
package 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 Code
package 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 Code
package 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 Code
package 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 Code
package 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 语言数据类型学习笔记的内容,希望对你有所帮助。