Go 語言內置的運算符有:算術運算符、關係運算符、邏輯運算符、位運算符、賦值運算符、其餘運算符。golang
運算符 | 描述 |
---|---|
+函數 |
相加優化 |
-spa |
相減指針 |
*code |
相乘blog |
/編譯器 |
相除string |
%it |
求餘 |
++ |
自增 |
-- |
自減 |
運算符 | 描述 |
---|---|
== |
檢查兩個值是否相等,若是相等返回 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次方。 其功能是把">>"左邊的運算數的各二進位所有右移若干位,">>"右邊的數指定移動的位數。 |
運算符 | 描述 |
---|---|
= |
簡單的賦值運算符,將一個表達式的值賦給一個左值 |
+= |
相加後再賦值 |
-= |
相減後再賦值 |
*= |
相乘後再賦值 |
/= |
相除後再賦值 |
%= |
求餘後再賦值 |
<<= |
左移後賦值 |
>>= |
右移後賦值 |
&= |
按位與後賦值 |
^= |
按位異或後賦值 |
|= |
按位或後賦值 |
運算符 | 描述 |
---|---|
& |
取地址符,返回變量存儲地址 |
* |
取值符,返回指針的變量 |
有些運算符擁有較高的優先級,二元運算符的運算方向均是從左至右。下表列出了全部運算符以及它們的優先級,由上至下表明優先級由高到低:
優先級 | 運算符 |
---|---|
7 |
^ ! |
6 |
* / % << >> & &^ |
5 |
+ - | ^ |
4 |
== != < <= >= > |
3 |
<- |
2 |
&& |
1 |
|| |
「_」是特殊標識符,又稱佔位符(空標識符號),用來忽略結果。
在Go語言裏,import的做用是導入其餘package。
特殊標識符(如:import _ oldboy/golang)的做用:當導入一個包時,該包下的文件裏全部init()函數都會被執行,然而,有些時候咱們並不須要把整個包都導入進來,僅僅是是但願它執行init()函數而已。這個時候就可使用 import _ 引用該包。即便用(import _ 包路徑)只是引用該包,僅僅是爲了調用init()函數,因此沒法經過包名來調用包中的其餘函數。
示例:
代碼目錄結構
src | +--- main.go | +--- oldboy | +--- oldboy.go
main.go
package main import _ "./oldboy" func main() { // oldboy.Print() //編譯報錯:./main.go:6:5: undefined: oldboy }
oldboy.go
package oldboy import "fmt" func init() { fmt.Println("The old boy welcomes you.") } func Print() { fmt.Println("Hello!") }
運行結果:
The old boy welcomes you.
package main func main() { str, _ := oldboy() _ = str } func oldboy() (str string, err error) { str = "The old boy welcomes you." err = nil return }
解釋:
佔位符,意思是那個位置本應賦給某個值,可是我們不須要這個值。因此就把該值賦給佔位符,意思是丟掉不要。這樣編譯器能夠更好的優化,任何類型的單個值均可以丟給佔位符。
第一個佔位符:這種狀況是忽略函數返回值,函數返回兩個結果,而你只想要一個結果。
第二個佔位符:這種狀況是忽略未使用的局部變量,若是聲明的局部變量,不使用,編譯器是會報錯。