1. 程式人生 > >go常量與變數

go常量與變數

常量

常量使用關鍵字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」,關注公眾號「燈下獨碼」