這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
1.定義變數
goLang中定義變數的方式很多
先聲明再使用;如果定義的變數未使用編譯時間會報錯
a.
/*定義單個變數*/var varName type //定義一個 type 類型的變數 varNamevarName = value //給變數 varName 賦值var varName type = value //定義變數並賦初始值/*定義多個變數*/var varName1, varName2 type //定義兩個 type 類型的變數 varName1 和 varName2varName1, varName2 = val1, val2 //給兩個變數分別賦值,varName1 = val1 ...var varName1, varName2 type = val1, val2 //定義兩個 type 類型的變數,varName1 = val1 ...
b.
/*單個*/var varName = val //定義變數並賦初始值,系統會根據 val (值)的類型來定義 varName (變數)的類型/*多個*/var varName1, varName2 = val1, val2 //varName1 = val1 ... (同上)
c.
/*單個*/varName := val //同 b 一樣,根據值來判定變數的類型/*多個*/varName1, varName2 := val1, val2 //varName1 = val1 ...//用 ":=" 取代 var type,寫法更簡潔,但是這種聲明方式只能用在函數內部,否則編譯會報錯
d.
_, varName2 := val1, val2 //丟棄 val1 , varName2 = val2//_(底線)是一個特殊的變數,賦給它的值會被丟棄
e.
定義多個變數時可用 ( ) 來聲明,減少代碼量
var ( varName1 type varName2 type) //定義兩個變數var ( varName1 = val1 varName2 = val2) //定義兩個變數並賦值
2. 常量
常量:在程式不能被改變的值,一般都定義為數值,布爾值,字串等
格式:
const constName [type] = val//定義一個常量 constName = val , type可省略,編譯時間系統會根據 val 來確定類型
註:
1). var num = 3 //實際上 3 也稱為常量
2). 格式中 val 可以是運算式,但不能為運行時才能知道結果的運算式
3). 預定義常量: true / false / iota
4). 定義多個常量時,也可用下面方式
const ( constName1 [type] = val1 constName2 [type] = val2)
note_var_const.go code list
package main //聲明當前檔案所屬的包名,main 是一個可獨立啟動並執行包,編譯後會產生可執行檔import "fmt" //匯入包var id = 123456/*id2 := 654321//在函數外用 := ,編譯時間會出現錯誤//non-declaration statement outside function body*/const PI = 3.14//每個可獨立啟動並執行程式,都包含入口函數 main ,與其他語言相同,但無參數和傳回值func main() {var num intnum = 100fmt.Println(num)//輸出 100var num1, num2 intnum1, num2 = 1, 2fmt.Println(num1, num2) //輸出 1 2var no1, no2 = 3, 4fmt.Println(no1, no2) //輸出 3 4n1, n2 := 5, 6fmt.Println(n1, n2)//輸出 5 6_, n := 7, 8fmt.Println(n) //輸出 8var (key1 stringkey2 string)key1, key2 = "k1", "k2"fmt.Println(key1, key2) //輸出 k1 k2var (a = 9b = 10)fmt.Println(a, b) //輸出 9 10fmt.Println(id) //輸出 123456fmt.Println(PI) //輸出 3.14/*PI = 3.1415//改變常量的值,編譯會出現錯誤//cannot assign to PI//cannot use 3.1415 (type float64) as type ideal in assignment*/}