go語言中iota的乙個例子

2021-09-19 23:48:02 字數 783 閱讀 8869

package main

import (

"fmt"

)type bitflag int

const (

// iota為0,1左移0位 = 1

active bitflag = 1 << iota

// send <=> active <=> 1 << iota,此時iota為1,1左移1位 = 2

send

// receive <=> send <=> 1 << iota,此時iota為2,1左移2位 = 4

receive

)func main()

iota是在編譯的時候,編譯器根據**中iota與const關鍵字的位置動態替換的。

package main

import (

"fmt"

)const (

//e=0,f=0,g=0

e, f, g = iota, iota, iota

)func main()

可以將iota理解為const語句的行索引

package main

import (

"fmt"

)func main()

編譯錯誤:undefined: iota.

iota是預先宣告的識別符號,但是只能作用在const常量宣告裡。

我怎麼覺得iota這東西是go的私生子,只能被關在某個地方,不同於true/false等這些兄弟,不能訪問它。

LineDDA的乙個例子

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,extctrls,stdctrls,buttons type tfmmain class tform ...

SQL GROUP CONCAT的乙個例子

我有乙個這樣的資料庫 user info 現在有乙個需求是把這樣 9 條記錄按照 username 來 group 成3條記錄 目標 shu female 201 lee male 202 yuki female 181 如果用select from user info group by usern...

explode的乙個例子

select level as level,explode split 1,2,3 as value 可以生成結果 level value level 1 level 2 level 3 lateral view 1.lateral view 用於和udtf函式 explode,split 結合來使...