Go语言提供了丰富的运算符来支持各种操作,包括算术运算、关系比较、逻辑运算、位运算、赋值运算等。接下来,我们将详细介绍这些运算符,并结合示例代码帮助理解。
算术运算符
算术运算符用于执行基本的数学计算。以下是常见的算术运算符及其描述:
+
加法-
减法*
乘法/
除法(对于整数类型,结果将向下取整)%
取模(仅适用于整数)
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("a + b =", a+b) // 输出: a + b = 13
fmt.Println("a - b =", a-b) // 输出: a - b = 7
fmt.Println("a * b =", a*b) // 输出: a * b = 30
fmt.Println("a / b =", a/b) // 输出: a / b = 3 (注意是整数除法)
fmt.Println("a % b =", a%b) // 输出: a % b = 1
}
关系运算符
关系运算符用来比较两个值,并返回一个布尔结果:
==
相等!=
不相等>
大于<
小于>=
大于等于<=
小于等于
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println("a == b is", a == b) // 输出: a == b is false
fmt.Println("a != b is", a != b) // 输出: a != b is true
fmt.Println("a > b is", a > b) // 输出: a > b is false
fmt.Println("a < b is", a < b) // 输出: a < b is true
fmt.Println("a >= b is", a >= b) // 输出: a >= b is false
fmt.Println("a <= b is", a <= b) // 输出: a <= b is true
}
逻辑运算符
逻辑运算符用于构建复杂的条件表达式:
&&
逻辑与||
逻辑或!
逻辑非
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println("a && b is", a && b) // 输出: a && b is false
fmt.Println("a || b is", a || b) // 输出: a || b is true
fmt.Println("!a is", !a) // 输出: !a is false
}
位运算符
位运算符允许对整数类型的二进制表示进行操作:
&
按位与|
按位或^
按位异或<<
左移>>
右移
package main
import "fmt"
func main() {
var a uint = 60 // 二进制: 0011 1100
var b uint = 13 // 二进制: 0000 1101
var c uint = 0
c = a & b /* 0000 1100 */
fmt.Printf("Line 1 - c 的值为 %d\n", c)
c = a | b /* 0011 1101 */
fmt.Printf("Line 2 - c 的值为 %d\n", c)
c = a ^ b /* 0011 0001 */
fmt.Printf("Line 3 - c 的值为 %d\n", c)
c = a << 2 /* 1111 0000 */
fmt.Printf("Line 4 - c 的值为 %d\n", c)
c = a >> 2 /* 0000 1111 */
fmt.Printf("Line 5 - c 的值为 %d\n", c)
}
赋值运算符
赋值运算符用于给变量赋值,包括简单赋值和复合赋值运算符如 +=
, -=
, *=
, /=
, %=
, &=
, |=
, ^=
, <<=
, >>=
。
package main
import "fmt"
func main() {
var a int = 10
a += 5 // 相当于 a = a + 5
fmt.Println("a after addition is", a) // 输出: a after addition is 15
}
以上只是Go语言中运算符的一个简要介绍。每个运算符都有其特定的应用场景和规则。了解它们的优先级和结合性也是至关重要的,这样可以帮助你编写更加准确的表达式。如果你有更具体的问题或者需要进一步的例子,请随时告诉我。