城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

golang2021变量基础(18)

8月8日 游鱼坊投稿
  Go语言现阶段没有枚举类型,但是可以使用const常量配合上一节《Go语言常量》中介绍的iota来模拟枚举类型,请看下面的代码:
  typeWeaponint
  const(
  ArrowWeaponiota开始生成枚举值,默认为0
  Shuriken
  SniperRifle
  Rifle
  Blower
  )
  输出所有枚举值
  fmt。Println(Arrow,Shuriken,SniperRifle,Rifle,Blower)
  使用枚举类型并赋初值
  varweaponWeaponBlower
  fmt。Println(weapon)
  代码输出如下:
  01234
  4hr代码说明如下:
  第1行中,将int定义为Weapon类型,就像枚举类型的本质是一个int类型一样。当然,某些情况下,如果需要int32和int64的枚举,也是可以的。
  第4行中,将常量Arrow的类型标识为Weapon,这样标识后,const下方的常量可以使用Weapon作为默认类型。该行使用iota进行常量值自动生成,iota的起始值为0,一般情况下也是建议枚举从0开始,让每个枚举类型都有一个空值,方便业务和逻辑的灵活使用。
  一个const声明内的每一行常量声明,将会自动套用前面的iota格式,并自动增加,类似于电子表格中单元格自动填充的效果,只需要建立好单元格之间的变化关系,拖动右下方的小点就可以自动生成单元格的值。
  当然,iota不仅可以生成每次增加1的枚举值。还可以利用iota来做一些强大的枚举常量值生成器。下面的代码可以方便的生成标志位常量:
  const(
  FlagNone1iota
  FlagRed
  FlagGreen
  FlagBlue
  )
  fmt。Printf(ddd,FlagRed,FlagGreen,FlagBlue)
  fmt。Printf(bbb,FlagRed,FlagGreen,FlagBlue)
  代码输出如下:
  248
  101001000
  在代码中编写一些标志位时,我们往往手动编写常量值,常量值特别多时,很容易重复或者写错,因此,使用ioto自动生成更加方便。
  代码说明如下:
  第2行中iota使用了一个移位操作,每次将上一次的值左移一位(二进制位),以得出每一位的常量值。
  第8行,将3个枚举按照常量输出,分别输出2、4、8,都是将1每次左移一位的结果。
  第9行,将枚举值按二进制格式输出,可以清晰地看到每一位的变化。
  将枚举值转换为字符串
  枚举在C中是一个独立的类型,可以通过枚举值获取该值对应的字符串。例如,C中Week枚举值Monday为1,那么可以通过Week。Monday。ToString()函数获得Monday字符串。
  Go语言中也可以实现这一功能,代码如下所示:
  转换字符串:
  packagemain
  importfmt
  声明芯片类型
  typeChipTypeint
  const(
  NoneChipTypeiota
  CPU中央处理器
  GPU图形处理器
  )
  func(cChipType)String()string{
  switchc{
  caseNone:
  returnNone
  caseCPU:
  returnCPU
  caseGPU:
  returnGPU
  }
  returnNA
  }
  funcmain(){
  输出CPU的值并以整型格式显示
  fmt。Printf(sd,CPU,CPU)
  }
  运行结果:
  CPU1
  代码说明如下:
  第6行,将int声明为ChipType芯片类型。
  第9行,将const里定义的常量值设为ChipType类型,且从0开始,每行值加1。
  第14行,定义ChipType类型的方法String(),返回值为字符串类型。
  第1522行,使用switch语句判断当前的ChitType类型的值,返回对应的字符串。
  第30行,按整型的格式输出CPU的值。
  String()方法的ChipType在使用上和普通的常量没有区别。当这个类型需要显示为字符串时,Go语言会自动寻找String()方法并进行调用。
投诉 评论 转载

依托新能源新技术日照港构建港口零碳排放示范区齐鲁网闪电新闻10月9日讯未来港口发展中,日照港将依托新技术、新设备继续提升码头整体作业效率;推进码头生产管理系统子系统功能开发,完全实现自动化码头的智能调度、智能操作、智慧交……家用台式机的寿命有多少年?1、保养的话的话,810都没问题。一般情况下,台式机只要保养好,使用频率不是极高的话,使用810年是可以的。2、保养一般的话,58年没问题。如果保养一般,或者……红米k40使用感受双十二在某多买了红米k40,12256顶配,已经近两个月了,减单评价一下,这部手机的e4屛幕,870cpu都不错,流畅度对比neo5感觉稍差,但是细微差别可忽略,也许是米柚12……golang2021变量基础(18)Go语言现阶段没有枚举类型,但是可以使用const常量配合上一节《Go语言常量》中介绍的iota来模拟枚举类型,请看下面的代码:typeWeaponintconst……北京邮电大学与银河航天初步完成5G卫星接入组网通信测试来源:中国新闻网中新网北京10月22日电(记者郭超凯)2021中国无线电大会10月20日至21日在北京召开。记者从会上获悉,北京邮电大学与银河航天初步完成5G卫星接入组网通信测……阿里快刀斩乱麻,满足受侵害女员工诉求期待成为预防性骚扰标杆阿里快刀斩乱麻,满足受侵害女员工诉求上文《阿里CEO羞愧道歉,为什么要等女员工说:鱼死网破,永不屈服?》我们已经讨论过,女员工被上级要求陪酒灌醉,被客户猥亵,后又被上级四……可聊天可看视频的三防功能手机!AGMM7测评体验分享Hello,大家好!随着科技的发展越来越快,智能手机也是越来越普及,而之前使用的按键手机渐渐地退出了舞台,淡出人们的视野。而对于老年人来说,按键手机才是他们的需要,智能手机的复……鄞州淘宝培训,淘宝运营怎么学习?鄞州淘宝培训,淘宝运营怎么学习?首先,运营核心。运营的核心是流量。通过运营获得更多的关注,得到更多的流量。如果把全网的流量导向某个商品,不成功很难。其次,基础运营。……不输比亚迪的混动系统,还有剪刀门加持,奕炫MAX能成为黑马?如今的汽车市场,洗牌已经从暗地摆在了明面上,比如传统的燃油车市场虽然阶级固化,但在新能源市场却是充满着新的机遇跟可能,蔚来等自主新势力,也能在高端市场站稳脚跟,甚至比BBA的新……小米10新机用了5个月,严重掉帧,上网严重掉网,你们的呢?我用了一个多月,难道就我一个人没问题?没问题,我的从没出现过问题。小米10除了重点,没发现啥毛病!刚买的手机摄像头就没办法聚焦,然后换了新机,麦克风经常出问题!……双11各电视品牌动作预判双11各电视品牌预计动作:TCL:TCL当前海外库存量400万台、国内库存量100万台,910月计划大力度清理库存。TCL电子与TCL华星之间采购面板价格并不……高德地图车道级导航完美适配OPPOFindN折叠屏手机近日,OPPO正式发布了旗下折叠屏手机OPPOFindN,高德地图作为该款旗舰手机的技术研发合作伙伴,在发布会中亮相。在演讲环节中,OPPO宣布OPPOFindN上用户可……
西媒报道中国在电动汽车赛道遥遥领先中国最神秘车企,未卖出一辆车却已有几千亿市值,恒大是怎样做的1450元起售?红米6A同款四核芯片,TCL新机正式发布为什么越来越多的货主企业选择加入笛笛叫船?程序员喜欢的编辑器有哪些?NASA好奇号在火星上探测到新有机分子Android插件化的前世今生大揭秘中国广电会不会变成下一个中国移动?微信只清理聊天记录和没删一样,学会这一招,多清理几倍,涨知识用好患者评价机制推动医院高质量发展为什么很多人都说百度是家缺德的公司?云端争霸是场持久战
梦见崎岖的山路梦见崎岖的山路的含义司藤中秦放、司藤、白英是什么关系?秦放是司藤的后代吗?网红富家女小冉去世,颖儿赵丽颖张嘉倪曾穿过其设计的衣服?茅台是酒还是金融?饭堂趣事多久不交党费自动脱党(12371上怎么查党员信息)正部级沈德咏被双开:执法犯法,大搞司法腐败热博聚热点网 小学生关于立德树人作文打美白针美白怎么样中国平安一年净赚1016亿,坐拥资产10万亿,却不是国企时光匆匆,永不相忘致我最亲爱的球友狗的自述

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁