go中iota的用法

先上代码,结果是什么?

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。

奇怪而有趣的用法!

本文来自:开源中国博客

感谢作者:dandan.fs

查看原文:go中iota的用法

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。