相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。 常量的宣告和變數宣告非常類似,只是把var
換成了const
,常量在定義的時候必須賦值。
const pi = 3.1415
const e = 2.7182
宣告了pi
和e
這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。
多個常量也可以一起宣告:
const (
pi = 3.1415
e = 2.7182
)
const同時宣告多個常量時,如果省略了值則表示和上面一行的值相同。 例如:
const (
n1 = 100
n2n3
)
上面示例中,常量n1
、n2
、n3
的值都是100。
iota
是go語言的常量計數器,只能在常量的表示式中使用。
iota
在const關鍵字出現時將被重置為0。const中每新增一行常量宣告將使iota
計數一次(iota可理解為const語句塊中的行索引)。 使用iota能簡化定義,在定義列舉時很有用。
iota在const關鍵字出現時將被重置為0(const內部的第一行之前),const中每新增一行常量宣告將使iota計數一次(iota可理解為const語句塊中的行索引)。
、每次 const 出現時,都會讓 iota 初始化為0.
const a = iota // a=0
const (
b = iota //b=0
c //c=1
)
舉個例子:
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
使用_
跳過某些值
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
)
go語言之常量
常量 常量表示式的值在編譯期計算,而不是在執行期。每種常量的潛在型別都是基礎型別 boolean string或數字。常量範圍目前只支援布林型,數字型 整型,浮點型,複數 和字串型 常量定義上可以分為顯式和隱式 顯式 const identifier type value隱式 const ident...
Go語言之Go語言網路程式設計
go語言的 net 包中有乙個 tcpconn 型別,可以用來建立 tcp 客戶端和 tcp 伺服器端間的通訊通道,tcpconn 型別裡有兩個主要的函式 func c tcpconn write b byte n int,err os.error func c tcpconn read b byt...
Go語言之Go 語言迴圈語句
go 語言提供了以下幾種型別迴圈處理語句 迴圈型別 描述for 迴圈 重複執行語句塊 迴圈巢狀 在 for 迴圈中巢狀乙個或多個 for 迴圈 迴圈控制語句可以控制迴圈體內語句的執行過程。go 語言支援以下幾種迴圈控制語句 控制語句 描述break 語句 經常用於中斷當前 for 迴圈或跳出 swi...