Go語言常量與變量初識

標識符和關鍵字

標識符

標識符只能以字母和_組成,並且只能以字母和_開頭。

關鍵字

Go中有25個關鍵字:

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var

變量

變量聲明

變量需要先聲明,再使用。其語法如下:

var name string

其數據類型有:

  • string,字符串
  • int,整型
  • bool,布爾型

上面這種是一個變量一個變量的聲明,go也有批量聲明方式:

var (
    name string
    age int
    isBoy bool
)

變量的初始化:

func main(){
    name = "joker"
    age = 18
    isBoy = true
}

注意:

Go語言中非全局變量聲明瞭必須使用,不使用則編譯不過去。

變量還可以聲明的同時並賦值:

var name string = "Joker"

也可以根據值來判斷變量是什麼類型:

var age = 14

還可以用簡短變量聲明(只能在函數體裏使用):

name := "Joker"
fmt.Print(name)

匿名變量

匿名變量不佔用命名空間,不會分配內存,所以匿名變量之間不存在重複聲明。

匿名變量用_來表示,如下:

func foo(int, string){
    return 10, "Joker"
}
func main(){
    x, _ = foo()
    _, y = foo()
}

注意事項

  • 函數外的每個語句都必須以關鍵字開頭,例如var func 等;
  • :=不能使用在函數體外;
  • _ 多用於佔位符,表示忽略值;
  • 同一個作用域中不能重複聲明同名的變量;

常量

常量是恆定不變的值,聲明常量的關鍵字是const

常量在定義的時候必須賦值,如下:

const c1 = 3.14159

多個常量也可以一起聲明,如下:

const (
    c1 = 3.14
    c2 = 0.68
)

在批量聲明常量的時候,如果其中有一個常量沒有賦值,其內容和上一個常量一樣,如下c2,c3的內容也爲200:

const (
    c1 = 200
    c2
    c3
)

iota

iota 是go語言中的一種常量計數器,只能在常量的表達式中使用。

iotaconst 關鍵字出現的時候被重置爲0,const 中的變量每聲明一行常量聲明將使iota 計數一次,iota 可理解爲是const 語句塊中的行索引,使用iota 能簡化定義,在定義枚舉時很有用,如下:

const (
    n1 = iota       // n1=0
    n2              // n2=1
    n3              // n3=2
)

幾種常見的用法:

(1)使用_跳過某些值

const (
        n1 = iota //0
        n2        //1
        _
        n4        //3
    )

(2)iota聲明中間插隊

const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
    const n5 = iota //0

(3)定義數量級

const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 << (10 * iota)
        PB = 1 << (10 * iota)
    )

(4)、多個iota定義在一行

const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章