14.2 赋值

一个赋值语句是一个简单的声明,将赋值运算符左侧表达式列表中的每个操作数与右侧表达式列表中的相应值绑定在一起。

有两种赋值语句。这是使用赋值运算符=的简单赋值的例子:

package main

import "fmt"

func main() {
    var apple, orange string            // 一个变量声明。不是一个赋值
    apple, orange = "sweet", "sour"     // 一个简单的赋值语句,使用赋值运算符=
    fmt.println(apple, orange)          // 这将打印出 "sweet sour"
}

在这种赋值中,RHS上的表达式会从左到右被先计算,然后再将它们的值赋给LHS上的相应表达式。

下面也是Go中的赋值运算符(每个都被视为单个标记):

+= -= |= ^= *= /= %= <<= >>= &= &^=

这种形式的赋值语句 x op= y,其中op=在图示上代表上面列出的赋值运算符,或多或少相当于 x = x op (y)。但是,在 x op= y 中,x 只被计算一次。

在这种赋值操作中:

  • 两侧的表达式列表中每个表达式都只能包含一个表达式,

  • 左侧表达式不能是空标识符(_),并且

  • 左侧表达式在右侧表达式之前被评估。

package main

func main() {
    var myFortune, expense = 1000, 999      // 带有初始化的变量声明
    myFortune -= expense                    // 一个第二类赋值语句。该语句等同于myFortune = myFortune - expense
    fmt.printf("My remaining fortune is %d dollars.\n", myFortune)
}

最后更新于