Go 學習筆記-常量

package main

import "fmt"

/*
 * 常量是一個簡單值的標識符,在程序運行時,不會被修改的量。
 * 常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和複數)和字符串型。
 * 格式:const identifier [type] = value
 *
 * [type] 可以省略,編譯器可以根據變量的值來推斷其類型。
 * 顯式類型定義: const b string = "abc"
 * 隱式類型定義: const b = "abc"
 */

// 聲明一個常量
const secondMS int = 1000

// 聲明多個常量
const a, b = 1, 2

// const 支持設置多類型
const (
	ci   = 1
	cb   = false
	cStr = "string"
	cLen = len(cStr) // len 計算字符串長度
)

const (
	cs1 = "a"
	cs2 // 字符串常量只會複製上一行結果,不會自增, cs2 = "a"
	cs3 = "abc"
	cs4
)

/*
 * iota,特殊常量,可以認爲是一個可以被編譯器修改的常量。
 * iota 在 const關鍵字出現時將被重置爲 0(const 內部的第一行之前),
 * const 中每新增一行常量聲明將使 iota 自增加一。
 */
const (
	c1 = iota // iota 常量默認值0,後續常量將使用自增值
	c2        // iota 下一行會自增 1
	c3        // 2
	c4        // 3
)

const (
	cl1 = 1 << iota // iota 佔位,默認爲0
	cl2 = 2 << iota // iota 佔位,當前值1
	cl3             // 常量自動繼承上一行表達式,2 << iota(2)
	cl4             // 繼續自增 2 << iota(3)
)

func main() {
	// c1 = 100  // 常量不允許修改

	fmt.Println("const")
	fmt.Println("secondMS", secondMS)
	fmt.Println("const diff value", ci, cb, cStr, cLen)
	fmt.Println("iota int", c1, c2, c3, c4)
	fmt.Println("iota bit(op)", cl1, cl2, cl3, cl4)
	fmt.Println("string", cs1, cs2, cs3, cs4)
}

參考鏈接

Go 語言常量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章