Go基礎之變量和常量

Go基礎之變量和常量

標識符和關鍵字

標識符

在編程語言中標識符就是程序員定義的具備特殊意義的詞,好比變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_(下劃線)組成,而且只能以字母和_開頭。 舉幾個例子:abc, _, _123, a123程序員

關鍵字

關鍵字是指編程語言中預先定義好的具備特殊含義的標識符。 關鍵字和保留字都不建議用做變量名。編程

Go語言中有25個關鍵字:app

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

Go語言中還有37個保留字。編程語言

Constants:    true  false  iota  nil

        Types:    int  int8  int16  int32  int64  
                  uint  uint8  uint16  uint32  uint64  uintptr
                  float32  float64  complex128  complex64
                  bool  byte  rune  string  error

    Functions:   make  len  cap  new  append  copy  close  delete
                 complex  real  imag
                 panic  recover

變量

Go語言中的變量須要聲明後才能使用,同一做用域內不支持重複聲明。 而且Go語言的變量聲明後必須使用。函數

標準聲明

var 變量名 變量類型
var name string
var age int
var isOk bool

批量聲明

var (
    a string
    b int
    c bool
    d float32
)

變量初始化

整型和浮點型變量的默認值爲0。 字符串變量的默認值爲空字符串。 布爾型變量默認爲false。 切片、函數、指針變量的默認爲nilui

也可聲明變量就賦值:指針

var 變量名 類型 = 表達式

類型推導

var name = "guo"
var age = 26

短變量:=聲明

在函數內部,能夠使用更簡略的 := 方式聲明並初始化變量。code

匿名變量

匿名變量用一個下劃線_表示,匿名變量不佔用命名空間,不會分配內存,因此匿名變量之間不存在重複聲明。索引

常量

const pi = 3.1415
const e = 2.7182

const同時聲明多個常量時,若是省略了值則表示和上面一行的值相同內存

const (
    n1 = 100
    n2
    n3
)

常量n1n2n3的值都是100

iota

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

iota在const關鍵字出現時將被重置爲0。const中每新增一行常量聲明將使iota計數一次(iota可理解爲const語句塊中的行索引)。 使用iota能簡化定義,在定義枚舉時頗有用

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

使用_跳過某些值

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

iota聲明中間插隊

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

定義數量級 (這裏的<<表示左移操做,1<<10表示將1的二進制表示向左移10位,也就是由1變成了10000000000,也就是十進制的1024。同理2<<2表示將2的二進制表示向左移2位,也就是由10變成了1000,也就是十進制的8。)

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

多個iota定義在一行

const (
        a, b = iota + 1, iota + 2 //0+1,0+2
        c, d                      //1+1,1+2
        e, f                      //2+1,2+2
    )
相關文章
相關標籤/搜索