go语言学习(五、运算符)

运算符用于在程序运行时执行数学或逻辑运算 Go 语言内置的运算符有:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

算术运算符:

package main

import "fmt"

func main() {
	a, b := 10, 20
	fmt.Println(a + b) // 30
	fmt.Println(a - b) // -10
	fmt.Println(a * b) // 200
	fmt.Println(a / b) // 0 整数运算导致 如果想得到0.5 那么a和b其中一个 需要是浮点数
	fmt.Println(a % b) // 10
	a++
	fmt.Println(a) // 11
	a--
	fmt.Println(a) // 10
}

关系运算符 返回值为bool

package main

import "fmt"

func main() {
	a, b := 10, 20
	fmt.Println(a == b) // false
	fmt.Println(a != b) // true
	fmt.Println(a > b)  // false
	fmt.Println(a < b)  // true
	fmt.Println(a >= b) // false
	fmt.Println(a <= b) // true
}

逻辑运算符 返回值为bool

package main

func main() {
	a, b := false, true
	fmt.Println(a && b) // 逻辑与 两个都为真才为真 false
	fmt.Println(a || b) // 逻辑或 一个为真就为真 true
	fmt.Println(!a) // 逻辑取反 true
}


位运算符 对整数在内存中的二进制位进行操作

package main

import "fmt"

func main() {
	a, b := 1, 2
	// 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与
	// 1的二进制为 0000 0001 2的二进制为 0000 0010 按位与 为 0000 0000
	// 输出0
	fmt.Println(a & b)

	// 按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或
	// 1的二进制为 0000 0001 2的二进制为 0000 0010 按位或 为 0000 0011
	// 输出3
	fmt.Println(a | b)

	// 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或
	// 1的二进制为 0000 0001 2的二进制为 0000 0010 按位相异或 为 0000 0011
	// 输出3
	fmt.Println(a ^ b)

	// 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方
	// 1的二进制为 0000 0001 左移两位 就是0000 0100
	// 输出4
	fmt.Println(a << 2)

	// 右移运算符">>"是双目运算符。右移n位就是除以2的n次方
	// 1的二进制为 0000 0001 右移两位 就是0000 0000
	// 输出0
	fmt.Println(a >> 2)
}

赋值运算符

package main

import "fmt"

func main() {
	a, b := 10, 20
	a = 30
	fmt.Println(a) // 30
	a += b
	fmt.Println(a) // 50
	a -= b
	fmt.Println(a) // 30
	a *= b
	fmt.Println(a) // 600
	a /= b
	fmt.Println(a) // 30
	a %= b
	fmt.Println(a) // 10
}

其他运算符

package main

import "fmt"

func main() {
	a := 4
	var ptr *int
	ptr = &a
	fmt.Println(&a)   // 返回变量内存地址 0xc00000a0c8
	fmt.Println(*ptr) // 指针变量 根据内存地址获取变量值 4
}

运算符优先级 5为最高 你可以通过使用括号来临时提升某个表达式的整体运算优先级

优先级运算符
5* / % << >> & &^
4+ -
3== != < <= > >=
2&&
1||
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值