先上代码,结果是什么?
package main
import (
"fmt"
)
const (
i=1<<iota
j=3<<iota
k
l
)
func main() {
fmt.Println("i=",i)
fmt.Println("j=",j)
fmt.Println("k=",k)
fmt.Println("l=",l)
}
输出:
i= 1
j= 6
k= 12
l= 24
在go中,iota表示从0开始自动加1,所以i=1<<0,j=3<<1(<<表示左移的意思),即:i=1,j=6,这没问题,关键在k和l,从输出结果看,k=3<<2,l=3<<3。
奇怪而有趣的用法!
有疑问加站长微信联系(非本文作者)