为了账号安全,请及时绑定邮箱和手机立即绑定

Move方法体里这么写的同学,麻烦解释一下,谢谢。

person.Address,address = address,person.Address

Move方法体里这么写的同学,麻烦解释一下,谢谢。

正在回答

3 回答

这个算是一个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

2 回复 有任何疑惑可以回复我~

Person结构体里面有旧地址的内容 北京  所以oldAddress声明并赋值person.Address

newAddress为新地址内容 san Francisco 赋值给person.Address 因为是指针所以会修改Person本身

0 回复 有任何疑惑可以回复我~
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)
}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Move方法体里这么写的同学,麻烦解释一下,谢谢。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信