Golang基础教程-五、运算符

5.1 算数运算符

package main
import "fmt"
import "unsafe"
func main() {
       a := 1
       b := 2
       fmt.Println("a加b等于:", a+b)
       fmt.Println("a减b等于:", a-b)
       fmt.Println("a剩b等于:", a*b)
       fmt.Println("a除b等于:", a/b)
       fmt.Println("a除b后取余数等于:", a%b)
       a++
       fmt.Println("a++后的结果:", a)
       b--
       fmt.Println("b--后的结果:", b)
}

运行结果
在这里插入图片描述

5.2 关系运算符

关系运算符主要有 =,!=,>,<,>=,<=共6种运算符


package main
import "fmt"
import "unsafe"
func main() {
        var m int = 21
		var n int = 10
		if m == n {
		fmt.Println("第一行返回:a等于b")
		} else {
		fmt.Println("第一行返回:a不等于b")
		}
		if m < n {
		fmt.Println("第二行返回:a小于b")
		} else {
		fmt.Println("第二行返回:a不小于b")
		}
		if m > n {
		fmt.Println("第三行返回:a大于b")
		} else {
		fmt.Println("第三行返回:a不大于b")
		}
		m, n = n, m //交换m,n的值
		if m <= n {
		fmt.Println("第四行返回:a小于等于b")
		}
		if m >= n {
		fmt.Println("第四行返回:a不小于b")
		}
}

运行结果
在这里插入图片描述

5.3 逻辑运算符

主要有三种逻辑运算符:
&&:逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。
||:逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。
!:逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。


package main
import "fmt"
import "unsafe"
func main() {
        var a bool = true
		var b bool = false
		if a && b {
		fmt.Printf("第一行 - 条件为 true\n")
		} else if a || b {
		fmt.Printf("第一行 - 条件为 true\n")
		}
		a, b = b, a //修改a,b的值,对调
		if a && b {
		fmt.Printf("第二行 - 条件为 true\n")
		} else {
		fmt.Printf("第二行 - 条件为 false\n")
		}
		if !(a && b) {
		fmt.Printf("第三行 - 条件为 true\n")
		} else {
		fmt.Printf("第三行 - 条件为 false\n")
		}
}

运行结果
在这里插入图片描述

5.4 位运算符

位运算符对整数在内存中的二进制位进行操作。
&, |, ^ ,<<,>>四种位运算方式


package main
import "fmt"
import "unsafe"
func main() {
       var a uint = 60 /* 60 = 0011 1100 */
	   var b uint = 13 /* 13 = 0000 1101 */
	   var c uint = 0
	
	   c = a & b /* 12 = 0000 1100 */
	   fmt.Printf("第一行 - c 的值为 %d\n", c)
	
	   c = a | b /* 61 = 0011 1101 */
	   fmt.Printf("第二行 - c 的值为 %d\n", c)
	
	   c = a ^ b /* 49 = 0011 0001 */
	   fmt.Printf("第三行 - c 的值为 %d\n", c)
	
	   c = a << 2 /* 240 = 1111 0000 */
	   fmt.Printf("第四行 - c 的值为 %d\n", c)
	
	   c = a >> 2 /* 15 = 0000 1111 */
	   fmt.Printf("第五行 - c 的值为 %d\n", c)
}

运行结果
在这里插入图片描述

5.5 赋值运算符

赋值符号为=,将一个表达式的值赋给一个左值,结合之前其他的型号的赋值运算符如下


package main
import "fmt"
import "unsafe"
func main() {
      var a int = 21
      var c int

      c = a
      fmt.Printf("第 1 行 - = 运算符实例,c 值为 = %d\n", c)

      c += a
      fmt.Printf("第 2 行 - += 运算符实例,c 值为 = %d\n", c)

      c -= a
      fmt.Printf("第 3 行 - -= 运算符实例,c 值为 = %d\n", c)

      c *= a
      fmt.Printf("第 4 行 - *= 运算符实例,c 值为 = %d\n", c)

      c /= a
      fmt.Printf("第 5 行 - /= 运算符实例,c 值为 = %d\n", c)

      c = 200

      c <<= 2
      fmt.Printf("第 6行 - <<= 运算符实例,c 值为 = %d\n", c)

      c >>= 2
      fmt.Printf("第 7 行 - >>= 运算符实例,c 值为 = %d\n", c)

      c &= 2
      fmt.Printf("第 8 行 - &= 运算符实例,c 值为 = %d\n", c)

      c ^= 2
      fmt.Printf("第 9 行 - ^= 运算符实例,c 值为 = %d\n", c)

      c |= 2
      fmt.Printf("第 10 行 - |= 运算符实例,c 值为 = %d\n", c)
}

运行结果
在这里插入图片描述

上一篇:C++中 ,new int(10),new int,new int[10],new int[10]


下一篇:前端面试笔试(一)