通常人们认为iota就是0,其实并非如此.
确切的说,当iota在紧跟着关键字const的每行出现时,iota为0,在第二行出现时,iota为1,以此类推;当iota再次遇到const时,重置为0
package main
import "fmt"
const a = iota
const b = iota
const c = iota
func main( ){
fmt.Println("a,b,c",a,b,c)
}
输出:
a,b,c 0 0 0
2.例2
package main
import "fmt"
cosnt (
a = iota
b = iota
c = iota
)
func main(){
fmt.Println("a,b,c",a,b,c)
}
输出:
a,b,c 0 1 2
3.例3
package main
import "fmt"
const (
a,b,c = iota,iota,iota
)
func main (){
fmt.Println("a,b,c",a,b,c)
}
输出:
a,b,c 0 0 0
在这个例子中,由于iota在同一行,因此,只计算一次,就是0
4.例4
package main
import "fmt"
const (
a = -1
b = iota
c = iota
)
func main() {
fmt.Println("a,b,c",a,b,c)
}
输出:
a,b,c -1 1 2
在这个例子中,由于iota在const的第二行出现,因此是1,这是最常犯的错误