person.Address,address = address,person.Address
Move方法体里这么写的同学,麻烦解释一下,谢谢。
这个算是一个go的语法糖吧,可以一起赋值。
如 a,b = 1,2 从左到右 a = 1, b = 2
当右边为变量时,执行赋值动作是它此刻的值。
接上面例子 a,b = b,a。 执行此语句时,a = 1,b =2 所以相当于 a,b = 2,1
这个语法糖在变量互换的时候异常好用
之前:
a=1,b=2;
temp = a;
a = b;
b = temp;
现:
a,b = b,a
Person结构体里面有旧地址的内容 北京 所以oldAddress声明并赋值person.Address
newAddress为新地址内容 san Francisco 赋值给person.Address 因为是指针所以会修改Person本身
package main import "fmt" type Person struct { Name string Gender string Age uint8 Address string // 结构体里加个属性 } // 这里加个Move方法 func (person *Person) Move(newAddress string) string{ oldAddress:= person.Address person.Address = newAddress return oldAddress } func main() { p := Person{"Robert", "Male", 33, "Beijing"} oldAddress := p.Move("San Francisco") fmt.Printf("%s moved from %s to %s.\n", p.Name, oldAddress, p.Address) }