Go的變量和常量


Go基礎之變量和常量

標識符和關鍵字

標識符

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

關鍵字

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

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

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。 切片、函數、指針變量的默認為nil

也可聲明變量就賦值:

var 變量名 類型 = 表達式

類型推導

var name = "guo"
var age = 26

短變量:=聲明

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

匿名變量

匿名變量用一個下划線_表示,匿名變量不占用命名空間,不會分配內存,所以匿名變量之間不存在重復聲明。

常量

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
	)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM