• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言中的Iota

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、复习常量

提到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

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go数组发布时间:2022-07-10
下一篇:
使用go tool pprof分析内存泄漏、CPU消耗发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap