‘iota’
identifier is used in const declarations to simplify definitions of
incrementing numbers.
Example
const (
first = iota
second
third
fourth
)
‘iota’
starts with number 0 and assign subsequent constants by incrementing the
variable value by 1.
HelloWorld.go
package main import "fmt" const ( first = iota second third fourth ) func main() { fmt.Println("first : ", first) fmt.Println("second : ", second) fmt.Println("third : ", third) fmt.Println("fourth : ", fourth) }
Output
first
: 0
second
: 1
third
: 2
fourth
: 3
Each
‘const’ block has its own iota.
const (
block1First = iota
block1Second
)
const (
block2First = iota
block2Second
block2Third
)
HelloWorld.go
package main import "fmt" const ( block1First = iota block1Second ) const ( block2First = iota block2Second block2Third ) func main() { fmt.Println("block1First : ", block1First) fmt.Println("block1Second : ", block1Second) fmt.Println("block2First : ", block2First) fmt.Println("block2Second : ", block2Second) fmt.Println("block2Third : ", block2Third) }
Output
block1First
: 0
block1Second
: 1
block2First
: 0
block2Second
: 1
block2Third
: 2
Using iota in constant expressions
We can use
iota in constant expressions.
const (
first = 1 << iota
second
third
fourth
five
six
)
Value of
first is 1
<< 0
second is
1 << 1
third is 1
<< 2
fourth is
1 << 3 etc,
HelloWorld.go
package main import "fmt" var a int = 10 const ( first = 1 << iota second third fourth five six ) func main() { fmt.Println("first : ", first) fmt.Println("second : ", second) fmt.Println("third : ", third) fmt.Println("fourth : ", fourth) fmt.Println("five : ", five) fmt.Println("six : ", six) }
Output
first
: 1
second
: 2
third
: 4
fourth
: 8
five
: 16
six : 32
No comments:
Post a Comment