美文网首页Go
Go一行代码进行多个赋值操作

Go一行代码进行多个赋值操作

作者: cx7 | 来源:发表于2018-11-21 11:48 被阅读0次

    一行代码进行多个赋值操作

    Go支持在一行代码中进行多个赋值操作
    例如

    a, b := 1,2
    fmt.Printf("a = %d b = %d")
    输出 :
    a = 1 b = 2
    

    相较于C++的写法

    int a = 1,b = 2;
    

    只做到了语法上的简洁 可以视作Go的语法糖

    同时读写变量

    如果要交换两个变量的值 C++会这么做

    int a = 1, b = 2, tmp = 0;
    tmp = a;
    a = b;
    b = tmp;
    

    Go的做法是

    a,b := 1,2
    a,b = b,a
    

    Go的一行代码内进行多个赋值操作时 并不是简单的按顺序执行
    否则就会出现

    a = b
    b = a
    

    Go应当是利用tmp变量缓存了赋值操作

    atmp := a
    btmp := b
    a = btmp
    b = atmp
    

    所以Go在一行代码内执行多个赋值操作时 不会因为顺序导致赋值结果被改变

    相关文章

      网友评论

        本文标题:Go一行代码进行多个赋值操作

        本文链接:https://www.haomeiwen.com/subject/hquqqqtx.html