GO中標識符,標識符,變量,常量,iota

參考:http://www.javashuo.com/article/p-ttocypaj-kr.htmlhtml

一.標識符與關鍵字

1.標識符

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

2.關鍵字

Go語言中有25個關鍵字:程序員

o語言中有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

二.變量

1.變量聲明

//單個變量建立
var 變量名 變量類型
//多個變量建立
var (
    變量名 變量類型
    變量名 變量類型
    變量名 變量類型
    變量名 變量類型
)

2.變量初始化

var 變量名 類型 = 表達式
//單個變量
var name string = "Q1mi"
var age int = 18
//多個變量
var name, age = "Q1mi", 20

3.短變量聲明

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

package main

import (
    "fmt"
)
// 全局變量m
var m = 100

func main() {
    n := 10
    m := 200 // 此處聲明局部變量m
    fmt.Println(m, n)
}

4.匿名變量

在使用多重賦值時,若是想要忽略某個值,能夠使用匿名變量(anonymous variable)。 匿名變量用一個下劃線_表示,例如:編程語言

func foo() (int, string) {
    return 10, "Q1mi"
}
func main() {
    x, _ := foo()
    _, y := foo()
    fmt.Println("x=", x)
    fmt.Println("y=", y)
}

匿名變量不佔用命名空間,不會分配內存,因此匿名變量之間不存在重複聲明。 (在Lua等編程語言裏,匿名變量也被叫作啞元變量。)函數

注意事項:ui

  1. 函數外的每一個語句都必須以關鍵字開始(var、const、func等)
  2. :=不能使用在函數外。
  3. _多用於佔位,表示忽略值。

三.常量

和變量聲明很是相似,只是把var換成了const,常量在定義的時候必須賦值。code

const pi = 3.1415
const e = 2.7182

聲明瞭pie這兩個常量以後,在整個程序運行期間它們的值都不能再發生變化了。htm

多個常量也能夠一塊兒聲明:

const (
    pi = 3.1415
    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
    )

幾個常見的iota示例:

使用_跳過某些值

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 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )
相關文章
相關標籤/搜索