• 3、Go语言基础之运算符


    3、Go语言基础之运算符

    1、运算符

    Go 语言内置的运算符有:

    1. 算术运算符
    2. 关系运算符
    3. 逻辑运算符
    4. 位运算符
    5. 赋值运算符

    1.1算数运算符

    运算符 描述
    + 相加
    - 相减
    * 相乘
    / 相除
    % 求余

    注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。

    package main
    
    import "fmt"
    
    func main() {
    	var (
    		a = 10
    		b = 3
    	)
    	fmt.Println(a + b)			//13
    	fmt.Println(a - b)			//7
    	fmt.Println(a * b)			//30
    	fmt.Println(a / b)			//3
    	fmt.Println(a % b)			//1
    }
    

    1.2关系运算符

    运算符 描述
    == 检查两个值是否相等,如果相等返回 True 否则返回 False。
    != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。
    > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。
    >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
    < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。
    <= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。
    package main
    
    import "fmt"
    
    func main() {
    	a := 10
    	b := 3
    	fmt.Println(a == b)			//false
    	fmt.Println(a != b)			//true
    	fmt.Println(a > b)			//true
    	fmt.Println(a >= b)			//true
    	fmt.Println(a < b)			//false
    	fmt.Println(a <= b)			//false
    }
    

    1.3逻辑运算符

    运算符 描述
    && 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
    || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
    ! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
    package main
    
    import "fmt"
    
    func main() {
    	fmt.Println(true && false)		//false
    	fmt.Println(true || false)		//true
    	fmt.Println(true != false)		//true
    }
    

    1.4位运算符

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

    运算符 描述
    & 参与运算的两数各对应的二进位相与。 (两位均为1才为1)
    | 参与运算的两数各对应的二进位相或。 (两位有一个为1就为1)
    ^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1)
    &^ 两个数,如果第二个数的某一位=1,则修改第一个数对应的位的值=0,否则第一个数对应的位数的值不变。
    << 左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
    >> 右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。
    第一个数 0110
    第二个数 1011
    进行&运算
    0010
    进行|运算
    1111
    进行^运算
    1101
    进行&^运算
    0100
    /**
    6   0110
    11  1011
    
    &   0010==>2
    	fmt.Println(6 & 11)		//2
    	
    |   1111==>15
    	fmt.Println(6 | 11)		//15
    	
    ^   1101==>13
    	fmt.Println(6 ^ 11)		//13
    	
    &^  0100==>4
    	fmt.Println(6 &^ 11)	        //4
    	
    <<  100 0000 0000‬==>1024
    		fmt.Println(1 << (10 * 1))	//1024
    
    >>  1024==>1
    	fmt.Println(1024 >> (10 * 1))		//1
    **/
    

    1.5赋值运算符

    运算符 描述
    = 简单的赋值运算符,将一个表达式的值赋给一个左值
    += 相加后再赋值
    -= 相减后再赋值
    *= 相乘后再赋值
    /= 相除后再赋值
    %= 求余后再赋值
    <<= 左移后赋值
    >>= 右移后赋值
    &= 按位与后赋值
    |= 按位或后赋值
    ^= 按位异或后赋值
    package main
    
    import "fmt"
    
    func main() {
    	var (
    	      a = 10
    	      b int
    	)
    	b = a
    	// b += 1 		//b = b+1=>11
    	// b -= 2 		//b=b-2=>8
    	// b *= 2 		//b=b*2=>20
    	// b /= 2 		//b=b/2=>5
    	// b %= 3 		//b=b%3=>1
    	// b <<= 10 	        //b=b<<10=>10240
    	// b >>= 10 	        //b=b>>10=>0
    	// b &= 2 		//b=b&2=>2
    	// b |= 2 		//b=b|2=>10
    	// b ^= 2 		//b=b^2=>8
    	fmt.Println(b)
    }
    
  • 相关阅读:
    【01】Maven依赖插件之maven-dependency-plugin
    docker(六) 使用docker-maven-plugin插件构建docker镜像
    SpringBoot 打包配置去除第三方依赖包
    maven打包为jar文件时,解决scope为system的jar包无法被打包进jar文件的解决方案。
    SpringBoot入门之spring-boot-maven-plugin
    SpringBoot系列之—瘦身部署
    java之mybatis之模糊查询
    java之mybatis之查询及分页
    java之mybatis之占位符
    java之mybatis之使用mybatis实现crud操作
  • 原文地址:https://www.cnblogs.com/remixnameless/p/13060758.html
Copyright © 2020-2023  润新知