Go语言入门(运算符)
- 目录
- 三、运算符
- 1. 算术运算符
- 2. 关系运算符
- 3. 逻辑运算符
- 4. 位运算符
- 5. 赋值运算符
- 6. 其他运算符
- 7. 运算符优先级
目录
Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。
下面是 Go 语言的基础语法讲解和代码示例。
上一篇:二、Go语言入门(变量声明和函数调用)
三、运算符
在 Go 语言中,运算符是用于执行各种操作的符号或关键字。运算符可以用于数值计算、比较操作、逻辑运算、位操作等。
1. 算术运算符
算术运算符用于执行基本的数学运算。
+
:加法-
:减法*
:乘法/
:除法%
:取模
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("a + b =", a + b) // 输出:13
fmt.Println("a - b =", a - b) // 输出:7
fmt.Println("a * b =", a * b) // 输出:30
fmt.Println("a / b =", a / b) // 输出:3
fmt.Println("a % b =", a % b) // 输出:1
}
2. 关系运算符
关系运算符用于比较两个值,返回布尔值。
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println("a == b:", a == b) // 输出:false
fmt.Println("a != b:", a != b) // 输出:true
fmt.Println("a > b:", a > b) // 输出:false
fmt.Println("a < b:", a < b) // 输出:true
fmt.Println("a >= b:", a >= b) // 输出:false
fmt.Println("a <= b:", a <= b) // 输出:true
}
3. 逻辑运算符
逻辑运算符用于连接布尔表达式。
&&
:逻辑与(AND)||
:逻辑或(OR)!
:逻辑非(NOT)
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println("a && b:", a && b) // 输出:false
fmt.Println("a || b:", a || b) // 输出:true
fmt.Println("!a:", !a) // 输出:false
fmt.Println("!b:", !b) // 输出:true
}
4. 位运算符
位运算符用于对整数类型的位进行操作。
&
:按位与|
:按位或^
:按位异或&^
:按位清除(AND NOT)<<
:左移>>
:右移
package main
import "fmt"
func main() {
a := 10 // 二进制:1010
b := 3 // 二进制:0011
fmt.Println("a & b:", a & b) // 输出:2 (二进制:0010)
fmt.Println("a | b:", a | b) // 输出:11 (二进制:1011)
fmt.Println("a ^ b:", a ^ b) // 输出:9 (二进制:1001)
fmt.Println("a &^ b:", a &^ b) // 输出:8 (二进制:1000)
fmt.Println("a << 1:", a << 1) // 输出:20 (二进制:10100)
fmt.Println("a >> 1:", a >> 1) // 输出:5 (二进制:0101)
}
5. 赋值运算符
赋值运算符用于给变量赋值。
=
:赋值+=
:加法赋值-=
:减法赋值*=
:乘法赋值/=
:除法赋值%=
:取模赋值<<=
:左移赋值>>=
:右移赋值&=
:按位与赋值|=
:按位或赋值^=
:按位异或赋值&^=
:按位清除赋值
package main
import "fmt"
func main() {
var a int = 10
a += 5 // 相当于 a = a + 5
fmt.Println("a += 5:", a) // 输出:15
a -= 3 // 相当于 a = a - 3
fmt.Println("a -= 3:", a) // 输出:12
a *= 2 // 相当于 a = a * 2
fmt.Println("a *= 2:", a) // 输出:24
a /= 4 // 相当于 a = a / 4
fmt.Println("a /= 4:", a) // 输出:6
a %= 3 // 相当于 a = a % 3
fmt.Println("a %= 3:", a) // 输出:0
a = 8
a <<= 1 // 相当于 a = a << 1
fmt.Println("a <<= 1:", a) // 输出:16
a >>= 2 // 相当于 a = a >> 2
fmt.Println("a >>= 2:", a) // 输出:4
a &= 3 // 相当于 a = a & 3
fmt.Println("a &= 3:", a) // 输出:0
a |= 2 // 相当于 a = a | 2
fmt.Println("a |= 2:", a) // 输出:2
a ^= 3 // 相当于 a = a ^ 3
fmt.Println("a ^= 3:", a) // 输出:1
a &^= 2 // 相当于 a = a &^ 2
fmt.Println("a &^= 2:", a) // 输出:1
}
6. 其他运算符
赋值运算符用于给变量赋值。
&
:取地址*
:指针运算符
package main
import "fmt"
func main() {
a := 10
p := &a // 取地址
fmt.Println("Address of a:", p)
fmt.Println("Value of *p:", *p) // 解引用
}
7. 运算符优先级
运算符的优先级决定了它们在表达式中计算的顺序。高优先级的运算符在低优先级的运算符之前执行。运算符的优先级如下,从高到低:
*
/
%
<<
>>
&
&^
+
-
|
^
==
!=
<
<=
>
>=
&&
||
可以使用括号
()
来显式地指定计算顺序。
package main
import "fmt"
func main() {
a := 10
b := 3
c := 2
result := a + b * c // 等同于 a + (b * c)
fmt.Println(result) // 输出:16
result = (a + b) * c
fmt.Println(result) // 输出:26
}
通过理解和掌握这些运算符及其使用方法,可以有效地编写和调试 Go 语言代码。
下一篇:四、Go语言入门(条件语句和循环语句)