type Car struct {
Name string
Color string
}
func (t Car) SetName(name string) {
t.Name = name
}
func (t *Car) SetColor(color string) {
t.Color = color
}
测试
func TestCar(t *testing.T) {
car1 := Car{
Name: "张三",
Color: "白色",
}
car1.SetName("张三1")
car1.SetColor("白色1")
fmt.Println("car1:", car1)
car2 := Car{
Name: "李四",
Color: "黄色",
}
car2.SetName("李四2")
car2.SetColor("黄色1")
fmt.Println("car2:", car2)
}
测试结果
car1: {张三 白色1}
car2: {李四 黄色1}
如上图
1.指针接收者的方法,无论是变量来调用,还是变量指针来调用,都能更改底层的数据。
2.而值接收者的方法,无论是变量来调用,还是变量指针来调用,都不能更改底层的数据。