go常量與變數
阿新 • • 發佈:2019-02-08
常量
常量使用關鍵字const,常量的資料型別只能是數字型(整數,浮點和複數)、字串型和布林型。
格式:const name type = value
比如:
const a = 1
在go語言中,可以省略型別,因為編譯器可以根據常量的值來推斷型別。
常量在賦值時,可以使用運算子,比如:
const b = 1/2
但是最好不要使用自定義函式,因為自定義函式在編譯期間並不知道能否獲取返回的值,所以無法給常量進行賦值。比如:
const c = getSum()
但是內建函式可以使用,比如len()。
常量也支援並行賦值的形式:
const a, b, c = 1, 2, 3
還可以當做列舉使用:
const (
One = 0
Two = 1
Three = 3
)
一般在使用列舉是,使用的是iota作為列舉值
const (
a = iota
b
c = iota + 10
d
)
這裡a = 0, b = 1 而 d = 13,這是因為iota會自動+1,在iota後加上具體的數值,就等於當前的iota值加上具體的數值,所以c = 12, d = 13.
iota 在每遇到const關鍵字是,iota就會重置為0。
變數
變數的宣告使用的是var關鍵字: var name type
也可以宣告為指標型別
vat a *int
同時宣告多個變數
//一般用於全域性變數
var (
a int
b string
)
//或者
var c, d string
變數被宣告之後,系統會自動給變數該型別的零值:
- int 0
- float 0.0
- bool false
- string 空字串
- 指標 nil
命名的規則遵循駝峰命名法最好,比如firstName,lastName。
如果你希望全域性變數能被其他包使用,只需要將首字母大寫即可:Name。
變數在程式中有自己作用域範圍,變數在函式體之外宣告,則認為是全域性變數,在函式內部宣告的則為區域性變數,區域性變數的作用域只在函式內,引數和返回值也是區域性變數。
變數的宣告還可以使用簡簡短宣告 := 比如
a := 1
寫一個列子,獲取當前的作業系統型別:
package main
import (
"fmt"
"runtime"
)
func main() {
var goos string = runtime.GOOS
fmt.Println(goos)
goarch := runtime.GOARCH
fmt.Println(goarch)
}
微信搜尋「goentry-xyz」,關注公眾號「燈下獨碼」