Go 结构体传参
- 1 min函数传参的时候, 什么时候用指针, 什么时候传结构体
- 可变用指针
- 不可变用结构体
go语言继承的时候, 什么时候用指针类型匿名字段,什么时候不用?
在Go语言中,当我们需要在子类中修改父类中的字段时,需要使用指针类型的匿名字段。这样在子类中修改这个字段的值时,会影响父类中的值。如果不需要在子类中修改父类中的字段,可以使用非指针类型的匿名字段。
package main
import "fmt"
type Person struct {
Name string
Age int
}
type Employee struct {
*Person // 使用指针类型的匿名字段
Salary float64
}
func main() {
p := &Person{Name: "Alice", Age: 30}
e := &Employee{Person: p, Salary: 50000}
fmt.Println(e.Name) // 输出: Alice
e.Name = "Bob"
fmt.Println(p.Name) // 输出: Bob,因为Employee中的Person字段是一个指向p的指钋
fmt.Println(e.Age) // 输出: 30
}
在上面的示例中,Employee结构体中使用指针类型的Person字段,当在Employee中修改Name字段时会影响到Person中的值。