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

来源:6-2 Go语言-结构体和方法

雨情雾语

2019-11-02 18:11

person.Address,address = address,person.Address

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

写回答 关注

3回答

  • 豆米
    2019-12-26 14:30:33

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

  • 迷茫的小菜
    2019-12-06 15:24:44

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

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

  • Landercy
    2019-11-05 14:40:41
    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)
    }


Go语言第一课

Go语言入门教程,编程之必备知识扩散,打好Go语言编程基础

107794 学习 · 148 问题

查看课程

相似问题