亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Go 語言中的運(yùn)算符

本文主要介紹 Go語言中的各種運(yùn)算符的使用以及其優(yōu)先級的比較。Go 語言中運(yùn)算符分為下面幾大類:

  • 算數(shù)運(yùn)算符;
  • 關(guān)系運(yùn)算符;
  • 邏輯運(yùn)算符;
  • 位運(yùn)算符;
  • 復(fù)制運(yùn)算符。

下面我們就來一一看下這幾種運(yùn)算符如何使用。

 

1. Go 語言的算數(shù)運(yùn)算符

Go語言中的算數(shù)運(yùn)算符如表所示:

運(yùn)算符 結(jié)合性 描述
+ 從左到右 運(yùn)算符左邊的實(shí)體加上右邊的實(shí)體
- 從左到右 運(yùn)算符左邊的實(shí)體減去右邊的實(shí)體
* 從左到右 運(yùn)算符左邊的實(shí)體乘以右邊的實(shí)體
/ 從左到右 運(yùn)算符左邊的實(shí)體除以右邊的實(shí)體
% 從左到右 運(yùn)算符左邊的實(shí)體對右邊的實(shí)體取余
++ 從右到左 左邊的變量使用后自加一
從右到左 左邊的變量使用后自減一

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = -7
  • 9? ? ? ? ? var b = 4
  • 10
  • 11? ? ? ? fmt.Println("a + b =", a+b)
  • 12? ? ? ? fmt.Println("a - b =", a-b)
  • 13? ? ? ? fmt.Println("a * b =", a*b)
  • 14? ? ? ? fmt.Println("a / b =", a/b)
  • 15? ? ? ? fmt.Println("a % b =", a%b)
  • 16
  • 17? ? ? ? //++和--只能獨(dú)立為一條語句使用
  • 18? ? ? ? a++
  • 19? ? ? ? fmt.Println("a++:", a)
  • 20? ? ? ? b--
  • 21? ? ? ? fmt.Println("b--:", b)
  • 22? }

執(zhí)行結(jié)果:

圖片描述

 

2. Go 語言的關(guān)系運(yùn)算符

Go語言中的關(guān)系運(yùn)算符如表所示:

運(yùn)算符 結(jié)合性 描述
== 從左到右 左右兩邊實(shí)體相等運(yùn)算結(jié)果為true,否則為false
!= 從左到右 左右兩邊實(shí)體不等運(yùn)算結(jié)果為true,否則為false
>= 從左到右 左邊的實(shí)體大于或等于右邊運(yùn)算結(jié)果為true,否則為false
> 從左到右 左邊的實(shí)體大于右邊運(yùn)算結(jié)果為true,否則為false
<= 從左到右 左邊的實(shí)體小****于或等于右邊運(yùn)算結(jié)果為true,否則為false
< 從左到右 左邊的實(shí)體小于右邊運(yùn)算結(jié)果為true,否則為false

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = -7
  • 9? ? ? ? ? var b = 4
  • 10
  • 11? ? ? ? fmt.Println("a == b :", a == b)
  • 12? ? ? ? fmt.Println("a != b :", a != b)
  • 13? ? ? ? fmt.Println("a >= b :", a >= b)
  • 14? ? ? ? fmt.Println(" a > b :", a > b)
  • 15? ? ? ? fmt.Println("a <= b :", a <= b)
  • 16? ? ? ? fmt.Println(" a < b :", a < b)
  • 17? }

執(zhí)行結(jié)果:

圖片描述

 

3. Go 語言的邏輯運(yùn)算符

Go語言中的邏輯運(yùn)算符如表所示:

運(yùn)算符 結(jié)合性 描述
&& 從左到右 左右實(shí)體均為?true?運(yùn)算結(jié)果為?true?,否則為?false
|| 從左到右 左右實(shí)體均為?false?運(yùn)算結(jié)果為?false?,否則為?true
! 從右到左 右邊實(shí)體為?false?運(yùn)算結(jié)果為?true?,否則為?false

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = true
  • 9? ? ? ? ? var b = false
  • 10
  • 11? ? ? ? fmt.Println("a && b :", a && b)
  • 12? ? ? ? fmt.Println("a || b :", a || b)
  • 13? ? ? ? fmt.Println(" !a :", !a)
  • 14? }

運(yùn)算結(jié)果:

圖片描述

 

4. Go 語言的位運(yùn)算符

Go 語言的位運(yùn)算符如表所示:

運(yùn)算符 結(jié)合性 描述
& 從左到右 按位與
| 從左到右 按位或
^ 從左到右 按位異或
<< 從左到右 左位移
>> 從左到右 右位移

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = 28 //0001 1100
  • 9? ? ? ? ? var b = 99 //0110 0011
  • 10
  • 11? ? ? ? fmt.Println(" a & b :", a&b) //0 : 0000 0000
  • 12? ? ? ? fmt.Println(" a | b :", a|b) //127 : 0111 1111
  • 13? ? ? ? fmt.Println(" a ^ b :", a^b) //127 : 0111 1111
  • 14? ? ? ? fmt.Println("a >> 2 :", a>>2) //7 : 0000 0111
  • 15? ? ? ? fmt.Println("b << 1 :", b<<1) //198 : 1100 0110
  • 16? }

執(zhí)行結(jié)果:

圖片描述

 

5.Go 語言的賦值運(yùn)算符

Go語言賦值運(yùn)算符如下表所示:

運(yùn)算符 結(jié)合性 描述
= 從右到左 將左邊的實(shí)體賦值給右邊的變量
+= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行加運(yùn)算之后賦值給右邊的變量
-= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行減****運(yùn)算之后賦值給右邊的變量
*= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行乘運(yùn)算之后賦值給右邊的變量
/= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行除運(yùn)算之后賦值給右邊的變量
%= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行取余運(yùn)算之后賦值給右邊的變量
>>= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行右位移運(yùn)算之后賦值給右邊的變量
<<= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行左位移運(yùn)算之后賦值給右邊的變量
&= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行與運(yùn)算之后賦值給右邊的變量
|= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行或運(yùn)算之后賦值給右邊的變量
^= 從右到左 將右邊的變量與左邊的實(shí)體進(jìn)行異或運(yùn)算之后賦值給右邊的變量

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = 28
  • 9? ? ? ? ? var b = 99
  • 10? ? ? ? a = b
  • 11? ? ? ? fmt.Println(" a = b :", a)
  • 12? ? ? ? a = 28
  • 13? ? ? ? a += b
  • 14? ? ? ? fmt.Println(" a += b :", a)
  • 15? ? ? ? a = 28
  • 16? ? ? ? a -= b
  • 17? ? ? ? fmt.Println(" a -= b :", a)
  • 18? ? ? ? a = 28
  • 19? ? ? ? a *= b
  • 20? ? ? ? fmt.Println(" a *= b :", a)
  • 21? ? ? ? a = 28
  • 22? ? ? ? a /= 2
  • 23? ? ? ? fmt.Println(" a /= 2 :", a)
  • 24? ? ? ? a = 28
  • 25? ? ? ? b %= 1
  • 26? ? ? ? fmt.Println(" b %= 1 :", a)
  • 27? ? ? ? a = 28
  • 28? ? ? ? a &= b
  • 29? ? ? ? fmt.Println(" a &= b :", a)
  • 30? ? ? ? a = 28
  • 31? ? ? ? a |= b
  • 32? ? ? ? fmt.Println(" a |= b :", a)
  • 33? ? ? ? a = 28
  • 34? ? ? ? a ^= b
  • 35? ? ? ? fmt.Println(" a ^= b :", a)
  • 36? ? ? ? a = 28
  • 37? ? ? ? a >>= 2
  • 38? ? ? ? fmt.Println("a >>= 2 :", a)
  • 39? ? ? ? a = 28
  • 40? ? ? ? b <<= 1
  • 41? ? ? ? fmt.Println("b <<= 1 :", a)
  • 42? }

執(zhí)行結(jié)果:

圖片描述

 

6. 優(yōu)先級

下表為各運(yùn)算符的優(yōu)先級示圖,優(yōu)先級從高到低

優(yōu)先級 類別 運(yùn)算符
1 括號運(yùn)算符 ()
2 單目運(yùn)算符 !、++、–
3 算數(shù)運(yùn)算符 *、/、%
4 +、-
5 位移運(yùn)算符 >>、<<
6 關(guān)系運(yùn)算符 <、<=、>、>=
7 ==、!=
8 按位與 &
9 按位異或 ^
10 按位或 |
11 邏輯與 &&
12 邏輯或 ||
13 賦值運(yùn)算符 =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、|=

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? "fmt"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? var a = 28
  • 9? ? ? ? ? var b = 99
  • 10
  • 11? ? ? ?? fmt.Println(" a + b * 2 =", a+b*2) //乘法優(yōu)先級較高,先執(zhí)行乘法
  • 12? ? ? ?? fmt.Println("(a + b) * 2 =", (a+b)*2) //括號優(yōu)先級最高,先執(zhí)行括號中的運(yùn)算
  • 13? }

執(zhí)行結(jié)果:

圖片描述

 

7. 小結(jié)

Go 語言的運(yùn)算符一般分為算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符以及賦值運(yùn)算符四大類。在使用過程中如果記不清楚運(yùn)算符的優(yōu)先級,可以使用特殊的運(yùn)算符——括號運(yùn)算符(),其優(yōu)先級最高,使用它就可以隨心所欲的控制優(yōu)先級了。

文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!