golang struct类型
时间: 2025-01-01 22:26:07 浏览: 8
### Golang 中 `struct` 类型的使用方法和特性
#### 定义结构体
在 Go 语言中,`struct` 是一种由多个不同数据类型成员组成的数据类型。通过定义结构体可以创建自定义复合类型。
```go
type Person struct {
Name string
Age int
}
```
此段代码展示了如何声明一个新的名为 `Person` 的结构体,它有两个字段:一个是字符串类型的 `Name` 和一个整数类型的 `Age`[^1]。
#### 创建结构体实例
可以通过多种方式来初始化结构体变量:
```go
// 方法一:直接赋值
var p1 Person
p1.Name = "Alice"
p1.Age = 30
// 方法二:使用字面量语法
p2 := Person{
Name: "Bob",
Age: 25,
}
// 方法三:指定字段名顺序无关紧要
p3 := &Person{
Age: 40,
Name: "Charlie",
}
```
这里介绍了三种不同的创建结构体实例的方法,每种都有其适用场景。
#### 嵌套结构体
Go 支持嵌入其他结构体内作为成员的方式构建更复杂的结构。
```go
type Address struct {
Street string
City string
}
type Employee struct {
ID int
Info Person // 嵌入另一个结构体
Location Address // 同样也可以是自定义类型
}
```
上述例子说明了怎样在一个更大的结构里包含较小的部分,从而形成层次化的数据模型。
#### 结构体数组排序
对于含有特定字段的结构体切片(即动态长度的数组),可利用标准库中的 `sort.Slice()` 函数对其进行排序操作。
```go
import (
"fmt"
"sort"
)
func main() {
people := []Person{
{"Eve", 28},
{"Dave", 22},
{"Carol", 35},
}
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println("Sorted by age:", people)
}
```
这段程序片段实现了基于年龄升序排列的一组人员记录列表[^2]。
阅读全文