Go語言運算符

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

||

特殊標識符

「_」是特殊標識符,又稱佔位符(空標識符號),用來忽略結果。

一、特殊標識符應用在import中

在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
}

解釋:

佔位符,意思是那個位置本應賦給某個值,可是我們不須要這個值。因此就把該值賦給佔位符,意思是丟掉不要。這樣編譯器能夠更好的優化,任何類型的單個值均可以丟給佔位符。

第一個佔位符:這種狀況是忽略函數返回值,函數返回兩個結果,而你只想要一個結果。

第二個佔位符:這種狀況是忽略未使用的局部變量,若是聲明的局部變量,不使用,編譯器是會報錯。

相關文章
相關標籤/搜索