日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Go 運算符分類

Go 語言內置的運算符有:

  • 算術運算符
  • 關系運算符
  • 邏輯運算符
  • 位運算符
  • 賦值運算符
  • 其他運算符

1.1 算術運算符

下表列出了所有Go語言的算術運算符。假定 A 值為 10,B 值為 20。

運算符描述實例
+相加A + B 輸出結果 30
-相減A - B 輸出結果 -10
*相乘A * B 輸出結果 200
/相除B / A 輸出結果 2
%求余B % A 輸出結果 0
++自增A++ 輸出結果 11
自減A-- 輸出結果 9

Go 語言中,自增/自減不再是一個操作符,而是一個語句。因此,在 Go 語言中自增只有一種寫法:

i++
i--

如果寫成前置自增 ++i,或者賦值后自增 a=i++都將導致編譯錯誤。

package mainfunc main() {a := 10b := 100a++// syntax error: unexpected ++ at end of statement// c := a++// syntax error: unexpected --, expecting }// --bprintln(a)println(b)
}

數值變量也可以支持 ++ 遞增和 -- 遞減語句(譯注:自增和自減是語句,而不是表達式,因此 x = i++ 之類的表達式是錯誤的):

v := 1
v++    // 等價方式 v = v + 1;v 變成 2
v--    // 等價方式 v = v - 1;v 變成 1

1.2 關系運算符

下表列出了所有Go語言的關系運算符。假定 A 值為 10,B 值為 20。

運算符描述實例
==檢查兩個值是否相等,如果相等返回 True 否則返回 False(A == B) 為 False
!=檢查兩個值是否不相等,如果不相等返回 True 否則返回 False(A != B) 為 True
>檢查左邊值是否大于右邊值,如果是返回 True 否則返回 False(A > B) 為 False
<檢查左邊值是否小于右邊值,如果是返回 True 否則返回 False(A < B) 為 True
>=檢查左邊值是否大于等于右邊值,如果是返回 True 否則返回 False(A >= B) 為 False
<=檢查左邊值是否小于等于右邊值,如果是返回 True 否則返回 False(A <= B) 為 True

1.3 邏輯運算符

下表列出了所有Go語言的邏輯運算符。假定 A 值為 True,B 值為 False。

運算符描述實例
&&邏輯 AND 運算符。 如果兩邊的操作數都是 True,則條件 True,否則為 False(A && B) 為 False
||邏輯 OR 運算符。 如果兩邊的操作數有一個 True,則條件 True,否則為 False(A || B) 為 True
!邏輯 NOT 運算符。 如果條件為 True,則邏輯 NOT 條件 False,否則為 True!(A && B) 為 True

1.4 位運算符

Go 語言支持的位運算符如下表所示。假定 A 為 60,B 為 13

運算符描述實例
&按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與(A & B) 結果為 12, 二進制為 0000 1100
|按位或運算符"|"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相或(A
^按位異或運算符"^"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1(A ^ B) 結果為 49, 二進制為 0011 0001
<<左移運算符"<<“是雙目運算符。左移n位就是乘以2的n次方。 其功能把”<<“左邊的運算數的各二進位全部左移若干位,由”<<"右邊的數指定移動的位數,高位丟棄,低位補0A << 2 結果為 240 ,二進制為 1111 0000
>>右移運算符">>“是雙目運算符。右移n位就是除以2的n次方。 其功能是把”>>“左邊的運算數的各二進位全部右移若干位,”>>"右邊的數指定移動的位數A >> 2 結果為 15 ,二進制為 0000 1111

1.5 賦值運算符

運算符描述實例
=簡單的賦值運算符,將一個表達式的值賦給一個左值C = A + B 將 A + B 表達式結果賦值給 C
+=相加后再賦值C += A 等于 C = C + A
-=相減后再賦值C -= A 等于 C = C - A
*=相乘后再賦值C _= A 等于 C = C _ A
/=相除后再賦值C /= A 等于 C = C / A
%=求余后再賦值C %= A 等于 C = C % A
<<=左移后賦值C <<= 2 等于 C = C << 2
>>=右移后賦值C >>= 2 等于 C = C >> 2
&=按位與后賦值C &= 2 等于 C = C & 2
^=按位異或后賦值C ^= 2 等于 C = C ^ 2
|=按位或后賦值C |= 2 等于 C = C | 2

1.6 其它運算符

運算符描述實例
&返回變量存儲地址&a; 將給出變量的實際地址
*指針變量*a; 是一個指針變量

指針變量 * 和地址值 & 的區別:

指針變量保存的是一個地址值,會分配獨立的內存來存儲一個整型數字。當變量前面有 * 標識時,才等同于 & 的用法,否則會直接輸出一個整型數字

func main() {var a int = 4var ptr *intptr = &aprintln("a的值為", a);    // 4println("*ptr為", *ptr);  // 4println("ptr為", ptr);    // 824633794744
}

參考:

菜鳥教程

總結

以上是生活随笔為你收集整理的Go 学习笔记(5)— 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、取地址和指针运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。