在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ GO/ Go語言運算符
Go panic錯誤處理實例
Go命令行參數(shù)實例
Go可變參數(shù)的函數(shù)實例
Go通道同步實例
Go非阻塞通道操作實例
Go指針實例
Go數(shù)字解析實例
Go語言指針
Go超時(timeouts)實例
Go速率限制實例
Go信號實例
Go Base64編碼實例
Go計時器實例
Go命令行標(biāo)志實例
Go原子計數(shù)器實例
Go語言切片
Go隨機數(shù)實例
Go語言類型轉(zhuǎn)換
Go排序?qū)嵗?/span>
Go時間格式化/解析實例
Go URL解析實例
Go字符串函數(shù)實例
Go語言常量
Go for循環(huán)語句實例
Go函數(shù)多個返回值實例
Go切片實例
Go行過濾器實例
Go語言接口
Go語言數(shù)組
Go語言變量
Go字符串格式化實例
Go斷續(xù)器實例
Go if/else語句實例
Go通道緩沖實例
Go錯誤實例
Go語言映射
Go執(zhí)行過程實例
Go函數(shù)實例
Go有狀態(tài)的goroutines實例
Go按自定義函數(shù)排序?qū)嵗?/span>
Go語言作用域規(guī)則
Go時代(Epoch)實例
Go變量實例
Go互斥體實例
Go語言范圍(range)
Go程序?qū)嵗?/span>
Go語言入門
Go通道路線實例
Go閉包(匿名函數(shù))實例
Go Select實例
Go通道范圍實例
Go集合函數(shù)實例
Hello World程序?qū)嵗?/span>
Go環(huán)境變量實例
Go語言運算符
Go讀取文件實例
Go延遲(defer)實例
Go SHA1哈希實例
Go語言條件和決策
Go語言錯誤處理
Go通道實例
Go指針實例
Go時間日期實例
Go語言字符串
Go語言循環(huán)
Go語言基礎(chǔ)語法
Go語言開發(fā)環(huán)境安裝配置
Go常量實例
Go語言結(jié)構(gòu)體
Go寫文件實例
Go正則表達(dá)式實例
Go JSON實例
Go語言教程
Go關(guān)閉通道實例
Go接口實例
Go語言遞歸
Go switch語句實例
Go函數(shù)遞歸實例
Go退出程序?qū)嵗?/span>
Go語言程序結(jié)構(gòu)
Go范圍實例
Go語言函數(shù)
Go工作池實例
Go語言數(shù)據(jù)類型

Go語言運算符

運算符是一個符號,通知編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。 Go語言有豐富的內(nèi)置運算符,并提供以下類型的運算符:

  • 算術(shù)運算符
  • 關(guān)系運算符
  • 邏輯運算符
  • 按位運算符
  • 賦值運算符
  • 其它(雜項)運算符

本教程將逐個解釋和演示上面所說的算術(shù),關(guān)系,邏輯,按位,賦值和其他運算符。

算術(shù)運算符

下表顯示了Go語言支持的所有算術(shù)運算符。假設(shè)變量 A 的值為 10,變量 B 的值為 20,則:

算術(shù)運算符示例

運算符 描述 示例
+ 添加兩個操作數(shù) A + B = 30
- 從第一個操作數(shù)中減去第二個操作數(shù) A - B = 10
* 將兩個操作數(shù)相乘 A * B = 200
/ 將分子除以分母 B / A = 2
% 模數(shù)運算符,以及整數(shù)除法的余數(shù) B % A = 0
++ 增加(遞增)運算符,將整數(shù)值加一 A++ = 11
-- 相減(遞減)運算符,將整數(shù)值減一 A— = 9

關(guān)系運算符

下表顯示了Go語言支持的所有關(guān)系運算符。假設(shè)變量 A 的值為 10,變量 B 的值為 20,則:

關(guān)系運算符示例

運算符 描述 示例
== 檢查兩個操作數(shù)的值是否相等,如果相等,則條件為真。 (A == B)結(jié)果為假
!= 檢查兩個操作數(shù)的值是否相等,如果值不相等,則條件為真。 (A != B)結(jié)果為真
> 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是,則條件為真。 (A > B)結(jié)果為假
< 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是,則條件為真。 (A < B)結(jié)果為真
>= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是,則條件為真。 (A >= B)結(jié)果為假
<= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是,則條件為真。 (A <= B)結(jié)果為真

邏輯運算符

下表顯示了Go語言支持的所有邏輯運算符。假設(shè)變量A的值為1,變量B的值為0,則:

邏輯運算符示例

運算符 描述 示例
&& 邏輯AND運算符。如果兩個操作數(shù)都不為零,則條件為真。 (A && B)結(jié)果為真
邏輯OR運算符。如果兩個操作數(shù)中的任何一個非零,則條件變?yōu)檎妗?/td> (A B) 結(jié)果為真
! 邏輯非運算符。用于反轉(zhuǎn)其操作數(shù)的邏輯狀態(tài)。如果條件為真,則邏輯非運算符將為假。 !(A && B) 結(jié)果為真

按位運算符

按位操作符對位進(jìn)行操作,并執(zhí)行逐位操作。 |^的真值表如下:

p q p & q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假設(shè)A = 60, B = 13; 現(xiàn)在的二進(jìn)制格式,如下:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

Go語言支持的位運算符,如在下表中所列。 假設(shè)變量A=60,并且變量B=13,則:

按位運算符示例

運算符 描述 示例
& 如果兩個操作數(shù)中都存在二進(jìn)制AND運算符,則將其復(fù)制到結(jié)果。 (A & B) 結(jié)果為 12, 也就是 0000 1100
二進(jìn)制OR運算符復(fù)制一個位,如果它存在于任一操作數(shù)。 (A B) 結(jié)果為 61, 也就是 0011 1101
^ 二進(jìn)制XOR運算符復(fù)制位,如果它在一個操作數(shù)中設(shè)置,但不是在兩個操作數(shù)中設(shè)置。 (A ^ B) 結(jié)果為 49, 也就是 0011 0001
<< 二進(jìn)制左移位運算符。左操作數(shù)值向左移動由右操作數(shù)指定的位數(shù)。 A << 2 結(jié)果為 240, 也就是 1111 0000
>> 二進(jìn)制右移運算符。左操作數(shù)值向右移動由右操作數(shù)指定位數(shù)。 A >> 2 結(jié)果為 15 , 也就是 0000 1111

賦值運算符

Go語言支持以下賦值運算符:
賦值運算符示例

運算符 描述 示例
= 簡單賦值操作符,將值從右側(cè)操作數(shù)分配給左側(cè)操作數(shù) C = A + B,就是將A + B的值賦給C
+= 相加和賦值運算符,向左操作數(shù)添加右操作數(shù),并將結(jié)果賦給左操作數(shù) C += A 相當(dāng)于 C = C + A
-= 減去和賦值運算符,從左操作數(shù)中減去右操作數(shù),并將結(jié)果賦給左操作數(shù) C -= A 相當(dāng)于 C = C - A
*= 乘法和賦值運算符,它將右操作數(shù)與左操作數(shù)相乘,并將結(jié)果賦給左操作數(shù) C *= A 相當(dāng)于 C = C * A
/= 除法和賦值運算符,它用右操作數(shù)劃分左操作數(shù),并將結(jié)果分配給左操作數(shù) C /= A 相當(dāng)于 C = C / A
%= 模數(shù)和賦值運算符,它使用兩個操作數(shù)來取模,并將結(jié)果分配給左操作數(shù) C %= A 相當(dāng)于 C = C % A
<<= 左移和賦值運算符 C << = 2相當(dāng)于C = C << 2
>>= 右移和賦值運算符 C >>= 2 相當(dāng)于 C = C >> 2
&= 按位和賦值運算符 C &= 2 相當(dāng)于 C = C & 2
^= 按位異或和賦值運算符 C ^= 2 相當(dāng)于 C = C ^ 2
= 按位包含OR和賦值運算符 C = 2 相當(dāng)于 C = C 2

其它運算符

還有一些其他重要的運算符包括sizeof? :,在Go語言中也是支持的。

Go語言其它運算符示例

運算符 描述 示例
& 返回變量的地址 &a將給出變量a的實際地址。
* 指向變量的指針 *a 是指向變量a的指針。

Go語言中的運算符優(yōu)先級

運算符優(yōu)先級確定表達(dá)式中的分組。這會影響表達(dá)式的計算方式。某些運算符比其他運算符具有更高的優(yōu)先級; 例如,乘法運算符比加法運算符有更高的優(yōu)先級。

例如:x = 7 + 3 * 2; 這里,計算結(jié)果x被分配13,而不是20,因為運算符 *具有比+有更的優(yōu)先級,所以它首先乘以3 * 2,然后加上7

這里,具有最高優(yōu)先級的運算符放在表的頂部,具有最低優(yōu)先級的運算符出現(xiàn)在底部。 在表達(dá)式中,將首先計算較高優(yōu)先級運算符。

運算符優(yōu)先級示例

分類 描述 關(guān)聯(lián)性
后綴 () [] -> . ++ - - 左到右
一元 + - ! ~ ++ - - (type)* & sizeof 右到左
乘法 * / % 左到右
加法 + - 左到右
移位 << >> 左到右
關(guān)系 < <= > >= 左到右
相等 == != 左到右
按位AND & 左到右
按位XOR ^ 左到右
按位OR 左到右
邏輯AND && 左到右
邏輯OR 左到右
條件 ?: 右到左
分配 = += -= *= /= %=>>= <<= &= ^= = 右到左
逗號 , 左到右