Go语言的赋值运算符怎么使用
Go语言的赋值运算符是一类用于将值赋给变量的运算符,可以通过它来完成基本的赋值操作和复合赋值操作。目前,Go语言中支持如下几种赋值运算符:
赋值运算符(=)
在Go语言中,基本的赋值运算符是等号(=),表示将右侧的表达式的值赋给左侧的变量。例如:
i := 1 j := 2 j = i
在上述代码中,第三行的“j = i”是一个赋值语句,将变量i的值1赋给变量j。此时j的值将变为1。
Go语言的赋值运算符可以单独使用,也可以配合其他运算符使用,构成复合赋值运算符。由于Go语言相对于其他语言来说比较简洁,直接使用等号进行赋值操作是最常见的方式。
递增运算符(+=)
Go语言中的递增运算符(+=)可以将左侧的变量与右侧的表达式相加,并将结果赋给左侧的变量。例如:
i := 1 i += 2 // 等价于 i = i + 2
在上述代码中,第二行的“i += 2”是一个复合赋值语句,将变量i的值与2相加,并将结果赋给变量i。此时i的值将变为3。
递减运算符(-=)
与递增运算符相似,Go语言中的递减运算符(-=)可以将左侧的变量与右侧的表达式相减,并将结果赋给左侧的变量。例如:
i := 3 i -= 2 // 等价于 i = i - 2
在上述代码中,第二行的“i -= 2”是一个复合赋值语句,将变量i的值与2相减,并将结果赋给变量i。此时i的值将变为1。
乘法赋值运算符(*=)
乘法赋值运算符(*=)可以将左侧的变量与右侧的表达式相乘,并将结果赋给左侧的变量。例如:
i := 2 i *= 3 // 等价于 i = i * 3
在上述代码中,第二行的“i *= 3”是一个复合赋值语句,将变量i的值与3相乘,并将结果赋给变量i。此时i的值将变为6。
除法赋值运算符(/=)
除法赋值运算符(/=)可以将左侧的变量与右侧的表达式相除,并将结果赋给左侧的变量。例如:
i := 6 i /= 3 // 等价于 i = i / 3
在上述代码中,第二行的“i /= 3”是一个复合赋值语句,将变量i的值与3相除,并将结果赋给变量i。此时i的值将变为2。
取模赋值运算符(%=)
取模赋值运算符(%=)可以将左侧的变量与右侧的表达式取模,并将结果赋给左侧的变量。例如:
i := 7 i %= 3 // 等价于 i = i % 3
在上述代码中,第二行的“i %= 3”是一个复合赋值语句,将变量i的值与3取模,并将结果赋给变量i。此时i的值将变为1。
左移赋值运算符(<<=)
左移赋值运算符(<<=)可以将左侧的变量左移若干位,并将结果赋给左侧的变量。例如:
i := 1 i <<= 3 // 等价于 i = i << 3
在上述代码中,第二行的“i <<= 3”是一个复合赋值语句,将变量i的值左移3位,并将结果赋给变量i。此时i的值将变为8。
右移赋值运算符(>>=)
右移赋值运算符(>>=)可以将左侧的变量右移若干位,并将结果赋给左侧的变量。例如:
i := 8 i >>= 2 // 等价于 i = i >> 2
在上述代码中,第二行的“i >>= 2”是一个复合赋值语句,将变量i的值右移2位,并将结果赋给变量i。此时i的值将变为2。
按位与赋值运算符(&=)
按位与赋值运算符(&=)可以将左侧的变量与右侧的表达式进行按位与操作,并将结果赋给左侧的变量。例如:
i := 3 i &= 2 // 等价于 i = i & 2
在上述代码中,第二行的“i &= 2”是一个复合赋值语句,将变量i的值与2进行按位与操作,并将结果赋给变量i。此时i的值将变为2。
按位异或赋值运算符(^=)
按位异或赋值运算符(^=)可以将左侧的变量与右侧的表达式进行按位异或操作,并将结果赋给左侧的变量。例如:
i := 2 i ^= 1 // 等价于 i = i ^ 1
在上述代码中,第二行的“i ^= 1”是一个复合赋值语句,将变量i的值与1进行按位异或操作,并将结果赋给变量i。此时i的值将变为3。
按位或赋值运算符(|=)
按位或赋值运算符(|=)可以将左侧的变量与右侧的表达式进行按位或操作,并将结果赋给左侧的变量。例如:
i := 3 i |= 2 // 等价于 i = i | 2
在上述代码中,第二行的“i |= 2”是一个复合赋值语句,将变量i的值与2进行按位或操作,并将结果赋给变量i。此时i的值将变为3。
总结
Go语言的赋值运算符是一类用于将值赋给变量的运算符,可以通过它来完成基本的赋值操作和复合赋值操作。在Go语言中,支持的赋值运算符有:赋值运算符(=)、递增运算符(+=)、递减运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符(/=)、取模赋值运算符(%=)、左移赋值运算符(<<=)、右移赋值运算符(>>=)、按位与赋值运算符(&=)、按位异或赋值运算符(^=)和按位或赋值运算符(|=)。
