天天看點

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語言中的一種常量計數器,隻能在常量的表達式中使用。

iota

const

關鍵字出現的時候被重置為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
    )           
const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
    const n5 = iota //0           
const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 << (10 * iota)
        PB = 1 << (10 * iota)
    )           
const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )