Golang Go Go Go part2:變量及常量聲明

 

3、關鍵字及內置預聲明常量、類型、函數app

一、關鍵字函數

Go有25個關鍵字,只能用在語法容許的地方,不能做爲名稱使用,它們是:ui

break          default         func         interface         select編碼

case           defer            go            map                structspa

chan           else             goto         package          switchcode

const          fallthrough   if              range               typeblog

continue     for               import      return               var      作用域

 

 

二、內置的預聲明的常量、類型和函數字符串

常量:true    false    iota    nil編譯器

類型:int       int8      int16     int32     int64

           uint     uint8    uint16   uint32   uint64    uintptr

           float32   float64    complex128      complex64

           bool     byte     rune      string    error

函數: make    len    cap    new    append    copy    close    delete   

            complex     real    imag

            panic      recover

 

 

4、變量及常量的聲明

一、變量

 標識符 (包括變量、常量、函數、包名)必須以字符開頭(全部Unicode UTF-8中的字符 或 下劃線「_」),不能使用數字開頭。

變量的三個做用域:在函數的形式參數和函數內聲明的變量(常量、函數也是)是局部變量,在函數外聲明的是全局變量,首字母大寫的變量在包外可見,所以造成的3個做用域塊由大到小是: 包>文件>函數 ,對應 包內全局變量、文件內私有全局變量、局變量。

同一做用域內不予許重複聲明同名變量,局部變量能夠與全局變量同名,但包名跟做用域無關,包名只是爲了標識文件所屬的包。

聲明全局變量必須使用 var 關鍵字。

聲明單個局部變量也可使用 var 關鍵字,但不能使用 var 同時聲明多個局部變量,通常使用  :=  快速聲明賦值局變量, := 只能用於局部變量。

 

go 是強類型語言,聲明變量時須要指明變量類型, 語法: 

 var 變量名 類型

 

下面是變量的聲明和賦值方法:

var i int //聲明一個 int 變量,   全局變量的聲明不能夠省略 var 關鍵字。
i = 1 //賦值 var m int = 2 //聲明變量並賦值 var n = 3 //省略 變量類型聲明,編譯器自動推導出變量類型 k:=4 //使用 := 聲明並賦值一個變量,編譯器自動推導出變量類型, := 不能用於單純賦值,不能用於聲明全局變量 var x,y int //聲明多個int 比量
var x1,x2,x3,x4 int = 1,2,3,4 //聲明多個變量並賦值 //這樣也是聲明多個變量 var ( a1 int a2 int )
var (
   b1 int = 1
   b2 int =2
  b3 := 3
) var v2, v3, v4 int v2, v3, v4 = 1, 2, 3 //多重賦值 i := 10 j := 20 i, j = j, i //交換變量的值

  

關於 := 對局部變量的從新聲明和從新賦值:該操做符隱含了局部變量的聲明,可是,都用於批量聲明和賦值時,若是對同一個局部變量作了操做,要看狀況

func f(){

  i:=1
  i:=2 //err,不能從新聲明變量 i

  a1,a2 :=1,2
  a1,a2 := 3,4 //err,不能從新聲明變量 a1,a2

  a1, b1,i := 3,4,5 //ok ,聲明瞭一個新變量 b1, 同時對變量 a1 和 i 從新賦值


}

  

 

匿名變量:下劃線在 go 語言中被稱爲匿名變量,是一個特殊的變量名,任何賦予它的值都會被丟棄,go的函數介意返回多個值,若是不須要其中某個值就能夠把它賦給下劃線。

 

二、常量

常量:go 語言中常量是指編譯期間就已知且不可改變的值,包括指程序中硬編碼的字面常量,和使用 const 聲明的常量。 

硬編碼的字面常量包括數值類型(包括整型、浮點型和複數類型)、布爾類型、字符串類型;

常量的聲明語法和變量生命與法同樣,只要把 var 換成 const 便可。

若是試圖對一個常量進行從新賦值將致使編譯錯誤。

 

常量迭代生成器 iota :若是過須要按必定規則聲明一批常量,可使用 iota 生成器,iota 生成器在遇到 const 關鍵字時被初始化爲0,聲明常量的代碼每換一行增長1,若是過同一行聲明多個常量,則這些常量的值相同。

const (
    x = iota // x == 0
    y          //y =1 ,只要第一個常量使用了 iota,後面的會隱式使用
    z         //z=2 
)

const m = iota //0

const (
  a1 = iota //0
  a2 = 2
  a3,a4 = iota,iota //同一行,都是1
  a5 = iota //2
)



const (
    _ = iota
    KB float64 = 1 << (10*iota)  //KB爲1左移10位
    MB   //MB左移20位 ...
    GB
    TB
)
相關文章
相關標籤/搜索