设为首页 加入收藏

TOP

Go语言_iota用法
2018-10-19 15:50:59 】 浏览:54
Tags:语言 _iota 用法

一、介绍

iota,特殊常量,可以认为是一个可以被编译器修改的常量。

在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

iota 可以被用作枚举值:

package main
import "fmt"
func main() {
    const (
        a = iota   //0
        b = iota   //1
        c = iota   //2
    )
    fmt.Println(a,b,c)
}

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式:

    const (
        a = iota   
        b        
        c 
    )

 

二、用法

1,作为累加器

package main

import "fmt"

func main() {
    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)
}

 

2,移位运算

package main
import "fmt"
const (
    i=1<<iota  //1<<0  二进制 0000 0001
    j=3<<iota  //3<<1  二进制 0000 0110
    k       //3<<2  二进制 0000 1100
    l       //3<<3  二进制 0001 1000
)

func main() {
    fmt.Println("i=",i)
    fmt.Println("j=",j)
    fmt.Println("k=",k)
    fmt.Println("l=",l)
}

简单表述:

  • i=1:左移0位不变,所以仍为1;
  • j=3:左移一位从0000 0011变为0000 0110,所以为6;
  • k=3:左移两位从0000 0011变为0000 1100,所以为12;
  • l=3:左移三位从0000 0011变为0001 1000,所以为24。

 

三、参考资料

iota: Golang 中优雅的常量

iota:Elegant Constants in Golang

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go实现发送解析GET与POST请求 下一篇Bytom设计结构解读

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目