Go语言教程【五、Go 语言数据类型】

Go 语言的数据类型包括基本数据类型、复合数据类型和引用类型。下面逐一进行讲解:

1. 基本数据类型

Go 语言的基本数据类型包括 bool、byte、int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr、float32、float64、complex64 和 complex128。

其中,bool 类型表示布尔值,只有 true 和 false 两个取值;byte 类型是 uint8 的别名,表示一个字节的数据;int 和 uint 类型分别表示有符号和无符号的整数类型,具体长度取决于编译器和操作系统;float32 和 float64 分别表示单精度和双精度浮点数类型;complex64 和 complex128 分别表示由 float32 和 float64 构成的复数类型。

2. 复合数据类型

Go 语言的复合数据类型包括数组、切片、结构体、函数、接口和映射。

数组是一种固定长度、相同类型的数据结构,可以通过下标访问数组元素,例如:

var a [3]int  // 定义一个长度为 3 的整数型数组
a[0] = 1
a[1] = 2
a[2] = 3

切片是一种动态长度的数据结构,可以通过指针和长度来访问切片元素,可以使用内置函数 make 创建切片,例如:

s := make([]int, 3)  // 创建一个长度为 3 的整数型切片
s[0] = 1
s[1] = 2
s[2] = 3

结构体是一种自定义的数据类型,可以包含若干个字段,例如:

type Person struct {
    name string
    age  int
}


p := Person{name: "Alice", age: 20}  // 创建一个 Person 类型的实例

函数是一种可以被调用的代码块,可以有输入参数和返回值,例如:

func add(x, y int) int {
    return x + y
}


z := add(1, 2)  // 调用 add 函数,返回 3

接口是一种定义对象行为的类型,由一组方法签名组成,例如:

type Animal interface {
    Speak() string
}


type Dog struct {}


func (d Dog) Speak() string {
    return "Woof!"
}


var a Animal = Dog{}  // 创建一个 Animal 类型的实例
fmt.Println(a.Speak())  // 输出 Woof!

映射是一种 key-value 数据结构,类似于字典或哈希表,可以使用内置函数 make 创建映射,例如:

m := make(map[string]int)  // 创建一个字符串到整数的映射
m["one"] = 1
m["two"] = 2

3. 引用类型

Go 语言的引用类型包括指针、切片、映射、通道和函数。引用类型在 Go 语言中传递的是指针,而不是值的副本。

指针是一种存储变量内存地址的数据类型,可以使用 & 运算符获取变量的地址,使用 * 运算符获取指针指向的变量的值,例如:

x := 1
p := &x  // 获取 x 的地址
fmt.Println(*p)  // 输出指针 p 指向的变量的值,即 1

切片和映射是引用类型,它们都可以使用 make 函数创建,也可以使用字面量创建,例如:

s := []int{1, 2, 3}  // 创建一个整数型切片
m := map[string]int{"one": 1, "two": 2}  // 创建一个字符串到整数的映射

通道是一种用于在 goroutine 之间传递数据的数据类型,可以使用 make 函数创建通道,例如:

ch := make(chan int)  // 创建一个整数型通道

函数是一种引用类型,可以作为值传递和返回值,例如:

func add(x, y int) int {
    return x + y
}


f := add  // 将函数 add 赋值给变量 f
z := f(1, 2)  // 调用函数 f,返回 3

以上就是 Go 语言的数据类型,了解它们的使用和特点可以让我们更好地使用 Go 语言编程。

你可能感兴趣的:(Go语言教程,golang,数据结构)