Go 語言基礎

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:將給出變量的實際地址。
*    指針變量。        實例*a:是一個指針變量

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

優先級    運算符
  7        ^ !
  6    * / % << >> & &^
  5      + - | ^
  4    == != < <= >= >
  3         <-
  2         &&
  1         ||

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

Go 語言條件語句

if
if...else
if 嵌套語句 你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。
switch 語句 switch 語句用於基於不同條件執行不同動作。
select 語句 select 語句類似於 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。

Go 語言循環語句

for 循環 重複執行語句塊
循環嵌套 在 for 循環中嵌套一個或多個 for 循環

循環控制語句
break 語句 經常用於中斷當前 for 循環或跳出 switch 語句
continue 語句 跳過當前循環的剩餘語句,然後繼續進行下一輪循環。
goto 語句 將控制轉移到被標記的語句。

循環判斷的例子輸出 1-100 素數:

package main
import "fmt"

func main() {
    var a, b int
    for a = 2; a <= 100; a++ {
        for b = 2; b <= (a / b); b++ {
            if a%b == 0 {
                break
            }
        }
        if b > (a / b) {
            fmt.Printf("%d\t是素數\n", a)
        }
    }
}

Go 語言函數

Go 語言函數定義格式如下:

func function_name( [parameter list 參賽列表] ) [return_types 返回類型] {
   函數體
}

函數參數
函數如果使用參數,該變量可稱爲函數的形參。
形參就像定義在函數體內的局部變量。
調用函數,可以通過兩種方式來傳遞參數:

傳遞類型 描述
值傳遞:值傳遞是指在調用函數時將實際參數複製一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實際參數。
引用傳遞 :引用傳遞是指在調用函數時將實際參數的地址傳遞到函數中,那麼在函數中對參數所進行的修改,將影響到實際參數。
默認情況下,Go 語言使用的是值傳遞,即在調用過程中不會影響到實際參數。

函數用法
函數作爲值 函數定義後可作爲值來使用
閉包 閉包是匿名函數,可在動態編程中使用
方法 方法就是一個包含了接受者的函數

Go 語言變量作用域

Go 語言中變量可以在三個地方聲明:

函數內定義的變量稱爲局部變量
函數外定義的變量稱爲全局變量
函數定義中的變量稱爲形式參數

package main

import "fmt"

/* 聲明全局變量 */
var a int = 20

func main() {
    /* main 函數中聲明局部變量 */
    var a int = 10
    var b int = 20
    var c int = 0

    fmt.Printf("main()函數中 a = %d\n", a)
    c = sum(a, b)
    fmt.Printf("main()函數中 a = %d\n", a)
    fmt.Printf("main()函數中 c = %d\n", c)
}

/* 函數定義-兩數相加 */
func sum(a, b int) int {
    a = a + 1
    fmt.Printf("sum() 函數中 a = %d\n", a)
    fmt.Printf("sum() 函數中 b = %d\n", b)
    return a + b
}


/*main()函數中 a = 10
sum() 函數中 a = 11
sum() 函數中 b = 20
main()函數中 a = 10
main()函數中 c = 31*/


Go 語言數組

初始化數組
以下演示了數組初始化:

var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
初始化數組中 {} 中的元素個數不能大於 [] 中的數字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章