GO之运算符号的具体使用 符号运算符

GO之运算符号的具体使用 符号运算符

目录
  • 算术运算符:
    • 二元的运算符:+ &8211; / %
    • 一元运算符:++ &8212;
  • 关系运算符
    • 逻辑运算符
      • 位运算符
        • 赋值运算符

          算术运算符:

          二元的运算符:+ &8211; / %

          四则运算没啥好说的,从小就开始进修,最终一个 % 表示 求余数或者取模运算。

          package mainimport “fmt”func main() a := 1 + 2 b := a – 1 c := a b d := c / a e := c % 3 fmt.Println(“a := 1 + 2 的结局是:”, a) fmt.Println(“b := a – 1 的结局是:”, b) fmt.Println(“c := a b 的结局是:”, c) fmt.Println(“d := c / a 的结局是:”, d) fmt.Println(“e := c % 3 的结局是:”, e)}

          一元运算符:++ &8212;

          • 自增(++:将变量的值增加 1。

          • 自减(--:将变量的值减少 1。

          • 它们只能作为独立的语句使用,不能出现在表达式中。例如,a = b++c = --d这样的写法在 Go 语言中是不允许的。

          package mainimport “fmt”func main() var i int = 1 i++ fmt.Println(“i++ 的结局:”, i) i– fmt.Println(“i– 的结局:”, i)}

          关系运算符

          关系运算符是用于比较两个操作数的值,并返回一个布尔值。

          package mainimport “fmt”func main() var a int = 10 var b int = 20 fmt.Println(“a == b : “, a, b, a == b) fmt.Println(“a != b : “, a, b, a != b) fmt.Println(“a > b : “, a, b, a > b) fmt.Println(“a < b : “, a, b, a < b) fmt.Println(“a >= b : “, a, b, a >= b) fmt.Println(“a <= b : “, a, b, a <= b)}

          逻辑运算符

          逻辑运算符的操作数是布尔表达式,即表达式的结局是 true 或 false。C语言里面,表达式的值如果是零值则为false,非零值则为true。在这里行不通了,必须是操作的必须是布尔表达式,不能直对一个变量进行判断了!!!

          package mainimport “fmt”func main() a := true b := false c := true d := false fmt.Println(“逻辑与(&&)运算:”) fmt.Println(a, b, a && b) fmt.Println(a, c, a && c) fmt.Println(a, d, a && d) fmt.Println(b, d, b && d) fmt.Println(“逻辑或(||)运算:”) fmt.Println(a, b, a || b) fmt.Println(a, c, a || c) fmt.Println(a, d, a || d) fmt.Println(b, d, b || d) fmt.Println(“逻辑非(!)运算:”) fmt.Println(a, !a) fmt.Println(b, !b)}

          位运算符

          位运算就是将一个变量存放的数值转换成二进制的01表示的形式,接着再对每一个二进制位进行计算。主要包括 按位与(&)、按位或(|)、按位(^) 和 位清空(&^)。

          • 按位与(&) :相同位置的二进制数值,全为1,则值为1,否则为 0
          • 按位或(|):相同位置的二进制数值,全为0,则值为0,否则为 1
          • 按位(^):相同位置的二进制数值,不同,则值为1,否则为 0
          • 按位清空(&^):

          第一种解释技巧:

          这里其实有个概念我给补充一下,=前面的值可以成为原始值,后面的值成为掩码,这么一来就好解释了。对于掩码来说如果二进制位的值为 0, 则取原始值对应的二进制位的数值,如果为1,则对应位的值为0

          第二种解释技巧:

          我自己亲自计算了几次结局都正确,数值及算法,帮助领会。

          a &^ = b 相当于 a = a & b ^ a 也相当于 a ^ b & a

          package mainimport “fmt”func main() a := 10 b := 11 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 += 1, 可以等价于 a = a + 1,即先计算 a + 1 的值,再将 a + 1 的结局,放入 a 中。

          package mainimport “fmt”func main() var a int a = 10 fmt.Println(“执行 a = 10 后 : a = “, a) a += 10 fmt.Println(“执行 a += 10 后 : a = “, a) a -= 1 fmt.Println(“执行 a -= 1 后 : a = “, a) a = 2 fmt.Println(“执行 a = 2 后 : a = “, a) a /= 3 fmt.Println(“执行 a /= 3 后 : a = “, a) a %= 10 fmt.Println(“执行 a %= 10 后 : a = “, a) a <<= 1 fmt.Println(“执行 a <<= 1 后 : a = “, a) a >>= 1 fmt.Println(“执行 a >>= 1 后 : a = “, a) a &= 10 fmt.Println(“执行 a &= 10 后 : a = “, a) a |= 10 fmt.Println(“执行 a |= 10 后 : a = “, a) a ^= 10 fmt.Println(“执行 a %= 10 后 : a = “, a) a %= 10 fmt.Println(“执行 a %= 10 后 : a = “, a) a %= 10 fmt.Println(“执行 a %= 10 后 : a = “, a)}

          到此这篇关于GO 之运算符号的具体使用的文章就介绍到这了,更多相关GO 运算符号内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

          无论兄弟们可能感兴趣的文章:

          • golang中为什么不存在三元运算符详解
          • Golang 运算符及位运算详解
          • Go语言实现运算符重载的技巧详解
          • golang怎样实现三元运算符功能
          • Go语言中的各类运算操作符详解
          • Go中使用操作符进行数学运算的示例代码
          • Go语言运算符案例讲解
          • go运算符对变量和值执行操作示例详解
          • Go语言进修之运算符使用详解
          版权声明

          为您推荐