Go語言學習(2)-常量

常量

1、常量定義
通過const關鍵字

func main(){
    const pi float64 = 3.1415926
    const zero = 0.0 //無類型浮點常量
    const(
        size int64 =1024
        eof = -1
    )
    const u,v float32 =0,3 //多重賦值
    const a,b,c = 3,4,"foo"
    //常量的賦值是一個編譯器行爲,所以右值不能出現任何需要運行期才能得出結果的表達式

}

2、預定義常量
Go語言預定義了這些常量:true、false、iota
iota比較特殊,可以被認爲是一個可被編譯器修改的常量,在每個const關鍵字出現時被重置爲0,然後在下一個const出現之前,每出現一次iota,所代表的的數字就會自動增1。

func main(){

    const ( // iota被重設爲0
        c0 = iota // c0 == 0
        c1 = iota // c1 == 1
        c2 = iota // c2 == 2
    )
    const (
        a = 1 << iota // a == 1 (iota在每個const開頭被重設爲0)
        b = 1 << iota // b == 2
        c = 1 << iota // c == 4
    )
    const (
        u = iota * 42 // u == 0
        v float64 = iota * 42 // v == 42.0
        w = iota * 42 // w == 84
    )
    const x = iota // x == 0 (因爲iota又被重設爲0了)
    const y = iota // y == 0 (同上)
    //如果兩個const的賦值語句的表達式是一樣的,那麼可以省略後一個賦值表達式。因此,上
    //面的前兩個const語句可簡寫爲:
    const ( // iota被重設爲0
        c00 = iota // c00 == 0
        c01 // c01 == 1
        c02 // c02 == 2
    )

    const (
        a0 = 1 <<iota // a0 == 1 (iota在每個const開頭被重設爲0)
        b0 // b0 == 2
        c0 // c0 == 4
    )

}

3、枚舉
Go語言不支持enum關鍵字
下面是常規的枚舉表示法,其中定義了一系列的整型常量

func main(){
    const (
        Sunday = iota
        Monday
        Tuesday
        Wednesday
        Thursday
        Friday
        Saturday
        numberOfDays // 這個常量沒有導出,由於是小寫字母開頭的
    )
//  同Go語言的其他符號(symbol)一樣,以大寫字母開頭的常量在包外可見。
//  以上例子中numberOfDays爲包內私有,其他符號則可被其他包訪問。
}
發佈了45 篇原創文章 · 獲贊 22 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章