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