[TOC]java
Go 語言內置的運算符有:算術運算符、關係運算符、邏輯運算符、位運算符、賦值運算符、其餘運算符。函數
運算符 | 描述 |
---|---|
+ | 相加 |
- | 相減 |
* | 相乘 |
/ | 相除 |
% | 求餘 |
++ | 自增 |
-- | 自減 |
運算符 | 描述 |
---|---|
== | 檢查兩個值是否相等,若是相等返回 True 不然返回 False。 |
!= | 檢查兩個值是否不相等,若是不相等返回 True 不然返回 False。 |
> | 檢查左邊值是否大於右邊值,若是是返回 True 不然返回 False。 |
< | 檢查左邊值是否小於右邊值,若是是返回 True 不然返回 False。 |
>= | 檢查左邊值是否大於等於右邊值,若是是返回 True 不然返回 False。 |
<= | 檢查左邊值是否小於等於右邊值,若是是返回 True 不然返回 False。 |
運算符 | 描述 | ||
---|---|---|---|
&& | 邏輯 AND 運算符。 若是兩邊的操做數都是 True,則條件 True,不然爲 False。 | ||
\ | \ | 邏輯 OR 運算符。 若是兩邊的操做數有一個 True,則條件 True,不然爲 False。 | |
! | 邏輯 NOT 運算符。 若是條件爲 True,則邏輯 NOT 條件 False,不然爲 True。 |
運算符 | 描述 | ||
---|---|---|---|
& | 按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與。 | ||
\ | 按位或運算符"\ | "是雙目運算符。 其功能是參與運算的兩數各對應的二進位相或。 | |
^ | 按位異或運算符"^"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果爲1。 | ||
<< | 左移運算符"<<"是雙目運算符。左移n位就是乘以2的n次方。 其功能把"<<"左邊的運算數的各二進位所有左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 | ||
>> | 右移運算符">>"是雙目運算符。右移n位就是除以2的n次方。 其功能是把">>"左邊的運算數的各二進位所有右移若干位,">>"右邊的數指定移動的位數。 |
運算符 | 描述 | |
---|---|---|
= | 簡單的賦值運算符,將一個表達式的值賦給一個左值 | |
+= | 相加後再賦值 | |
-= | 相減後再賦值 | |
*= | 相乘後再賦值 | |
/= | 相除後再賦值 | |
%= | 求餘後再賦值 | |
<<= | 左移後賦值 | |
>>= | 右移後賦值 | |
&= | 按位與後賦值 | |
^= | 按位異或後賦值 | |
\ | = | 按位或後賦值 |
運算符 | 描述 |
---|---|
& | 取地址符,返回變量存儲地址 |
* | 取值符,返回指針的變量 |
「_」是特殊標識符,又稱佔位符(空標識符號),用來忽略結果。oop
func main( a:=true if a,b,c :=1,2,3;a+b+c>6{ fmt.Println("大於6") }else{ fmt.Println("小於等於6") } )
go語言沒有while,由於for 能夠替代while ,⽀持三種循環⽅式,包括類 while 語法。指針
s := "abc" for i, n := 0, len(s); i < n; i++ { // 常⻅的 for 循環,⽀持初始化語句能夠多個值。 println(s[i]) } n := len(s) for n > 0 { // 替代 while (n > 0) {} println(s[n]) // 替代 for (; n > 0;) {} n-- } for { // 替代 while (true) {} println(s) // 替代 for (;;) {} }
func main(){ a:=1 switch a{ //方式一 case 0: fmt.Println("111") case 1: fmt.Println("222") default: fmt.Println("default") } switch { //方式二 case a>=0: fmt.Println("111") case a>=1: fmt.Println("222") default: fmt.Println("default") } switch a:=1;{ //方式三 case a>=0: fmt.Println("111") case a>=1: fmt.Println("222") default: fmt.Println("default") } }
GO 語言支持 goto、break、continue 三種循環控制語句,三個語句均可以配合標籤( label )使用,標籤名區分大小寫,定義後不使用會形成編譯錯誤。code
func main() { var i int for { println(i) i++ if i > 2 { goto BREAK } } BREAK: println("break") EXIT: // Error: label EXIT defined and not used }
注意,goto、continue、break語句跳出到標籤,必定要注意標籤的位置,避免死循環。it
注意:goto語句與標籤之間不能有變量聲明,不然編譯錯誤。編譯
func main() { fmt.Println("start") goto Loop var say = "hello oldboy" fmt.Println(say) Loop: fmt.Println("end") }//會引起編譯錯誤
break 語句跳出當前循環。能夠配合標籤使用跳出多層循環。table
continue :跳過當前循環的剩餘語句,而後繼續進行下一輪循環。。也能夠配合標籤跳出多層。class