go运算符
内置运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
算术运算符
注意: ++(自增)和–(自减)在 Go 语言中是单独的语句,并不是运算符
package main
import "fmt"
func main() {
fmt.Println("10+3=", 10+3) // =13
fmt.Println("10-3=", 10-3) // =7
fmt.Println("10*3=", 10*3) // =30
//除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
fmt.Println("10/3=", 10/3) //3
fmt.Println("10.0/3=", 10.0/3) //3.3333333333333335
// 取余注意 余数=被除数-(被除数/除数)*除数
fmt.Println("10%3=", 10%3) // =1
fmt.Println("-10%3=", -10%3) // -1
fmt.Println("10%-3=", 10%-3) // =1
fmt.Println("-10%-3=", -10%-3) // =-1
}
注意:在 golang 中,++ 和 – 只能独立使用 错误写法如下:
var i int = 8
var a int
a = i++ //错误,i++只能独立使用
a = i-- //错误, i--只能独立使用
注意:在 golang 中没有前++ 错误写法如下:
var i int = 1
++i // 错误,在 golang 没有 前++
--i // 错误,在 golang 没有 前--
fmt.Println("i=", i)
++ --正确写法:
package main
import "fmt"
func main() {
var i int = 1
i++
fmt.Println("i=", i) // 2
}
关系运算符
package main
import "fmt"
func main() {
//演示关系运算符的使用
var n1 int = 9
var n2 int = 8
fmt.Println(n1 == n2) //false
fmt.Println(n1 != n2) //true
fmt.Println(n1 > n2) //true
fmt.Println(n1 >= n2) //true
fmt.Println(n1 < n2) //flase
fmt.Println(n1 <= n2) //flase
flag := n1 > n2
fmt.Println("flag=", flag)
}
逻辑运算符
package main
import "fmt"
func main() {
//演示逻辑运算符的使用 &&
var age int = 40
if age > 30 && age < 50 {
fmt.Println("ok1")
}
if age > 30 && age < 40 {
fmt.Println("ok2")
}
//演示逻辑运算符的使用 ||
if age > 30 || age < 50 {
fmt.Println("ok3")
}
if age > 30 || age < 40 {
fmt.Println("ok4")
}
//演示逻辑运算符的使用 !
if age > 30 {
fmt.Println("ok5")
}
if !(age > 30) {
fmt.Println("ok6")
}
}
赋值运算符
package main
import "fmt"
func main() {
d := 8 + 2*8 // 赋值运算从右向左
fmt.Println(d) // 24
x := 10
x += 5 //x=x+5
fmt.Println("x += 5 的值:", x) // 15
y := 10
y -= 5 //y=y-5
fmt.Println("y -= 5 的值:", y) // 5
a := 10
a *= 5 //a=a*5
fmt.Println("a *= 5 的值:", a) // 50
b := 10.0
b /= 5
fmt.Println("b /= 5 的值:", b) // 2
c := 10
c %= 3
fmt.Println("c %= 3 的值:", c) // 1
}
位运算符
位运算符对整数在内存中的二进制位进行操作。
package main
import "fmt"
func main() {
/*
& 两位均为 1 才为 1
| 两位有一个为 1 就为
^ 相异或 两位不一样则为 1
<< 左移 n 位就是乘以 2 的 n 次方。 “a<<b”是把 a 的各二进位全部左移 b 位,
高位丢弃,低位补 0。
>> 右移 n 位就是除以 2 的 n 次方。
*/
var a int = 5 // 101
var b int = 2 // 010
fmt.Println("a&b=", a&b) // 000 值 0
fmt.Println("a|b=", a|b) // 111 值 7
fmt.Println("a^b=", a^b) // 111 值 7
fmt.Println("5>>2=", a>>b) // 5 右移 2 位 1
fmt.Println("5<<2=", a<<b) // 5 左移 2 位 10100
fmt.Println("5<<1=", 5<<1) // 1010
fmt.Println("5>>1=", 5>>1) // 10
fmt.Println("7>>2=", 7>>2) // 1
}
参考文献
https://go.dev/doc/tutorial/getting-started
https://gobyexample.com/
https://www.w3schools.com/go/
https://go.dev/doc/tutorial/
https://www.geeksforgeeks.org/golang-tutorial-learn-go-programming-language/