发布时间:2024-11-22 01:15:29
type Person struct {
name string
age int
}
通过使用点操作符,我们可以访问和修改结构体中的字段:
p := Person{name: "Alice", age: 25}
fmt.Println(p.name) // 输出:Alice
p.age = 30
fmt.Println(p.age) // 输出:30
type Person struct {
name string
age int
}
func (p Person) Print() {
fmt.Printf("Name: %s, Age: %d\n", p.name, p.age)
}
现在我们可以通过调用Print方法来打印Person结构体的信息:
p := Person{name: "Bob", age: 35}
p.Print() // 输出:Name: Bob, Age: 35
type Person struct {
name string
age int
}
func (p *Person) ChangeName(newName string) {
p.name = newName
}
现在,我们可以使用指针类型的变量来调用ChangeName方法,并直接修改结构体的name字段:
p := &Person{name: "Charlie", age: 40}
p.ChangeName("David")
fmt.Println(p.name) // 输出:David
type Person struct {
name string
age int
}
type Student struct {
Person
major string
}
现在,Student结构体将自动继承Person结构体的字段和方法:
s := Student{Person: Person{name: "Emily", age: 20}, major: "Computer Science"}
fmt.Println(s.name) // 输出:Emily
s.age = 21
fmt.Println(s.age) // 输出:21
s.Print() // 输出:Name: Emily, Age: 21
type Person struct {
name string
age int
}
type Student struct {
Person
major string
}
func (s Student) PrintInfo() {
s.Print()
fmt.Printf("Major: %s\n", s.major)
}
现在,我们可以通过调用Student结构体的PrintInfo方法来打印学生的信息:
s := Student{Person: Person{name: "Frank", age: 22}, major: "Mathematics"}
s.PrintInfo() // 输出:Name: Frank, Age: 22\nMajor: Mathematics
这种嵌套调用的方式非常灵活,可以在一个方法中实现多个结构体的行为。
希望通过本文的介绍,读者对Golang结构体API有了更好的理解和应用能力。
。