Go 語言基礎

2021-09-13 03:48:15 字數 2860 閱讀 5255

go 語言內建的運算子有:

1.算術運算子:+ - * / % ++ --

2.關係運算子:== != > < >= <=

3.邏輯運算子:&& || !

4.位運算子:& | ^ << >> 將其先轉換為二進位制數,在根據如下表規則

p    q    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

如假定 a = 60; b = 13; 其二進位制數轉換為:

a = 0011 1100

b = 0000 1101

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

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

a<<2 =240 二進位制為 1111 0000 左移n位就是乘以2的n次方。

a>>2 =15 二進位制為 0000 1111 右移n位就是除以2的n次方。

5.賦值運算子

1.=     2.+=     3.-=     4.*=     5./=     6.%=    

7.<<= 左移後賦值 c <<= 2 等於 c = c << 2

8.>>= 右移後賦值 c >>= 2 等於 c = c >> 2

9.&= 按位與後賦值 c &= 2 等於 c = c & 2

10.^= 按位異或後賦值 c ^= 2 等於 c = c ^ 2

11.|= 按位或後賦值 c |= 2 等於 c = c | 2

6.其他運算子

* 指標變數。 例項*a:是乙個指標變數

7.運算子優先順序

有些運算子擁有較高的優先順序,二元運算子的運算方向均是從左至右。下表列出了所有運算子以及它們的優先順序,由上至下代表優先順序由高到低:

優先順序    運算子

7 ^ !

6 * / % << >> & &^

5 + - | ^

4 == != < <= >= >

3 <-

2 &&

1 ||

當然,你可以通過使用括號來臨時提公升某個表示式的整體運算優先順序。

if if...else

if 巢狀語句 你可以在 if 或 else if 語句中嵌入乙個或多個 if 或 else if 語句。

switch 語句 switch 語句用於基於不同條件執行不同動作。

select 語句 select 語句類似於 switch 語句,但是select會隨機執行乙個可執行的case。如果沒有case可執行,它將阻塞,直到有case可執行。

for 迴圈 重複執行語句塊

迴圈巢狀 在 for 迴圈中巢狀乙個或多個 for 迴圈

迴圈控制語句

break 語句 經常用於中斷當前 for 迴圈或跳出 switch 語句

continue 語句 跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。

goto 語句 將控制轉移到被標記的語句。

迴圈判斷的例子輸出 1-100 素數:

package main

import "fmt"

func main()

}if b > (a / b)

}}

go 語言函式定義格式如下:

func function_name( [parameter list 參賽列表] ) [return_types 返回型別]
函式引數

函式如果使用引數,該變數可稱為函式的形參。

形參就像定義在函式體內的區域性變數。

呼叫函式,可以通過兩種方式來傳遞引數:

傳遞型別 描述

值傳遞:值傳遞是指在呼叫函式時將實際引數複製乙份傳遞到函式中,這樣在函式中如果對引數進行修改,將不會影響到實際引數。

引用傳遞 :引用傳遞是指在呼叫函式時將實際引數的位址傳遞到函式中,那麼在函式中對引數所進行的修改,將影響到實際引數。

預設情況下,go 語言使用的是值傳遞,即在呼叫過程中不會影響到實際引數。

函式用法

函式作為值 函式定義後可作為值來使用

閉包 閉包是匿名函式,可在動態程式設計中使用

方法 方法就是乙個包含了接受者的函式

go 語言中變數可以在三個地方宣告:

函式內定義的變數稱為區域性變數

函式外定義的變數稱為全域性變數

函式定義中的變數稱為形式引數

package main

import "fmt"

/* 宣告全域性變數 */

var a int = 20

func main()

/* 函式定義-兩數相加 */

func sum(a, b int) int

/*main()函式中 a = 10

sum() 函式中 a = 11

sum() 函式中 b = 20

main()函式中 a = 10

main()函式中 c = 31*/

初始化陣列

以下演示了陣列初始化:

var balance = [5]float32

初始化陣列中 {} 中的元素個數不能大於 中的數字。

Go語言基礎

目錄 一.go語言內建關鍵字 二.go語言注釋方法 三.專案結構 四.程式結構 五.包的匯入 六.package的別名 七.可見性規則 單行注釋 多行注釋 go程式是通過package來組織的 只有package 名稱為main的包可以包含main函式 乙個可執行程式有且僅有乙個main包 初步練習...

Go基礎程式設計 Go語言介紹

2009年11月10日,go語言正式成為開源程式語言家庭的一員。go語言 或稱golang 是雲計算時代的c語言。go語言的誕生是為了讓程式設計師有更高的生產效率,go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go編譯的程式可以媲美c或c 的速度,而且更加安全 支援並行程序。開發人員...

Go基礎程式設計 Go語言介紹

2009年11月10日,go語言正式成為開源程式語言家庭的一員。go語言 或稱golang 是雲計算時代的c語言。go語言的誕生是為了讓程式設計師有更高的生產效率,go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go編譯的程式可以媲美c或c 的速度,而且更加安全 支援並行程序。開發人員...