Go中iota是什麼

2022-04-04 00:29:33 字數 741 閱讀 7971

go iota是乙個比較奇怪的存在,它只能用在const的申明中,是乙個從0開始的行數索引器。

看**

package main

import (

"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...