1、常量定義 通過const關(guān)鍵字
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" //常量的賦值是一個編譯器行為,所以右值不能出現(xiàn)任何需要運行期才能得出結(jié)果的表達(dá)式}2、預(yù)定義常量 Go語言預(yù)定義了這些常量:true、false、iota iota比較特殊,可以被認(rèn)為是一個可被編譯器修改的常量,在每個const關(guān)鍵字出現(xiàn)時被重置為0,然后在下一個const出現(xiàn)之前,每出現(xiàn)一次iota,所代表的的數(shù)字就會自動增1。
func main(){ const ( // iota被重設(shè)為0 c0 = iota // c0 == 0 c1 = iota // c1 == 1 c2 = iota // c2 == 2 ) const ( a = 1 << iota // a == 1 (iota在每個const開頭被重設(shè)為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又被重設(shè)為0了) const y = iota // y == 0 (同上) //如果兩個const的賦值語句的表達(dá)式是一樣的,那么可以省略后一個賦值表達(dá)式。因此,上 //面的前兩個const語句可簡寫為: const ( // iota被重設(shè)為0 c00 = iota // c00 == 0 c01 // c01 == 1 c02 // c02 == 2 ) const ( a0 = 1 <<iota // a0 == 1 (iota在每個const開頭被重設(shè)為0) b0 // b0 == 2 c0 // c0 == 4 )}3、枚舉 Go語言不支持enum關(guān)鍵字 下面是常規(guī)的枚舉表示法,其中定義了一系列的整型常量
func main(){ const ( Sunday = iota Monday Tuesday Wednesday Thursday Friday Saturday numberOfDays // 這個常量沒有導(dǎo)出,由于是小寫字母開頭的 )// 同Go語言的其他符號(symbol)一樣,以大寫字母開頭的常量在包外可見。// 以上例子中numberOfDays為包內(nèi)私有,其他符號則可被其他包訪問。}
|
新聞熱點
疑難解答