go iota是乙個比較奇怪的存在,它只能用在const的申明中,是乙個從0開始的行數索引器。
看**
package mainimport (
"fmt")
const
( i =iota
j =iotakl
)func main()
輸出結果:
i= 0
j= 1
k= 2
l= 3
前兩個數理解起來比較容易,iota的值是在const宣告中的從0開始的行數。所有第一行值為0,第二行值為1
第三個和第四個,其實是go中宣告const時的縮略寫法,表示值和它前面表示式等號右邊的值是一樣的,完整寫法是:
const (
這樣的話,輸出結果就很好理解了。
如果改一下,給const k賦值:
const( i =iota
j =iota
k = 0l)
func main()
則輸出結果是:
i= 0
j= 1
k= 0
l= 0
再改一下:
const i = iota
const j = iota
func main() {
輸出結果:
i= 0
j= 0
這表明iota的行記數,只在當前const內生效。
go語言(三)常量和iota
和php定義一樣,一次賦值後不可重複賦值,可以批量宣告,package main import fmt const pi 3.1415926 const statusok 200 notfound 404 批量常量賦值,如果某一行宣告後沒有賦值,預設和上一行一致 const n1 200 n2 10...
GO 學習之常量與iota
相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。舉例 package main import fmt 單個宣告常量 const pi 3.1415926 批量宣告常量 const statu...
go語言基礎之 iota的用法
iota 是go語言中的乙個特殊常量,它的應用遵循以下五條規則,接下來將通過 一一驗證 不同const 定義塊互不干擾 所有注釋行和空行全部忽略 沒有表示式的常量定義復用上一行的表示式 從第一行開始,iota 從 0 逐行加一 替換所有 iota 1.不同 const 定義塊互不干擾 const a...