指向结构体的指针
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 97 课,共 109 课。
使用结构体时,你可以像处理其他类型一样创建指向它们的指针。这有助于高效地传递大型结构体。
定义一个 Person 结构体,并创建指向它的指针:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// 创建一个指向结构体的指针
personPtr := &person
// 通过指针访问字段
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}输出表明,我们可以通过指针访问字段:
Alice
30你也可以通过指针修改字段:
personPtr.age = 31
fmt.Println(person.age) // 输出:31挑战
入门在这个挑战中,你将练习在 Go 中使用指向结构体的指针。你有一个 Person 结构体,其中包含 name 和 age 字段。你的任务是使用指向该结构体的指针更新这个人的信息。
代码已经创建了一个 Person 结构体和一个指向它的指针。你需要通过这个指针修改这个人的信息。
亲手试试
package main
import "fmt"
// 包含 name 和 age 字段的 Person 结构体
type Person struct {
name string
age int
}
func main() {
// 创建一个 Person 结构体
person := Person{
name: "John",
age: 25,
}
// 创建一个指向 Person 结构体的指针
personPtr := &person
// 打印修改前的人员信息
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: 用指针将此人的名字改为 "Jane",年龄改为 30
// 提示:你可以用点号通过指针访问结构体字段
// 打印更新后的人员信息
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器