zoukankan      html  css  js  c++  java
  • Go语言_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

  • 相关阅读:
    项目进展1
    团队项目(百药食坊)介绍
    结对编程—黄金点游戏(庞思瑶&季远琦)
    WC项目
    四则运算
    Week3——Session
    Spring IOC (DI-依赖注入)
    Week2——XML
    Week2——提交表单后后台的工作
    Week1——JavaEE
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/9373421.html
Copyright © 2011-2022 走看看