• Go语言中的Iota


    一、复习常量

    提到Iota这个关键字,就必须要复习一下Go语言的常量。

    1.Go语言的常量一般使用const声明

    2.Go语言的常量只能是布尔型、数字型(整数型、浮点型和复数)和字符串型

    3.Go语言的常量可以不指定类型,由编译器自己推断,如下面的【string】就是可以不写的(也称为 隐式类型定义)

    const s string = "constant"

    4.常量不能在程序运行时改变

    二、Iota的用法

    通过一个具体的事例,来看iota的特性。例下面的代码输出的结果每一个常量的值是什么?

    package IotaDemo
    
    import (
        "fmt"
    )
    
    const(
        a = iota
        b
        c
    )
    
    const(
        m=1<<iota
        n=2<<iota
        x=10
        y = iota
        z=iota>>1
        o
    )
    
    func IotaTest() {
    
        fmt.Println("a=",a)
        fmt.Println("b=",b)
        fmt.Println("c=",c)
    
        fmt.Println("m=",m)
        fmt.Println("n=",n)
        fmt.Println("x=",x)
        fmt.Println("y=",y)
        fmt.Println("z=",z)
        fmt.Println("o=",o)
    }

    结果如下:

    a= 0
    b= 1
    c= 2
    m= 1
    n= 4
    x= 10
    y= 3
    z= 2
    o= 2

    上面的结果说明了iota的特性,如下:

    • iota只能被使用在const限定中,相当于一个常量的计数器
    • iota相当于一个枚举值,默认从0开始,在一个const中,会进行+1,例如a、b、c 可以看出来
    • iota不会因为const中被赋值了固定值,就不再增加,const中每有一个常量就+1,例如 x和y ,y并没有因为x被赋值为10,就是2,而是3
    • 每次进入一个新的const,iota都会重新开始计算

     

    补充移位操作知识点:

    对于Go语言的<<(右移)和 >>(左移)操作,关键点如下:

      1.将移位的值先转换成2进制,右移动就是高位补0,左移就是低位补0

      2.操作符右边的是需要移动的位数,左边是待移动的值,

        例如 1<<3 就是把1向左移动3位,即00000001 左移3位 变为 00000100 就是4

           3<<1 就是把3向左移动1为,即00000011 左移1为 变为 00000110 就是6

      更多可以参考:https://www.sojson.com/operation/go.html

     

     

  • 相关阅读:
    CSS3 transition 过度
    CSS3 2D转换
    jQuery 选择器
    bootstrap、qjuery、插件 、字体网页
    利用jquery.backstretch插件,背景切换
    js 背景自动切换
    Jquery
    分析动态网页请求爬取腾讯视频评论
    追女神助手v0.1
    动态加载网页的爬取总结
  • 原文地址:https://www.cnblogs.com/dcz2015/p/10412367.html
Copyright © 2020-2023  润新知