加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

GOLANG“Namespaced”枚举?

发布时间:2020-12-16 19:26:34 所属栏目:大数据 来源:网络整理
导读:我理解在GO中创建枚举的惯用方法如下: type topicStatus intconst ( registered topicStatus = iota active inactive pending-removal removed ) 但如果我有另一个想要“重用”名称的“枚举”,我会收到一个错误: type hotelVisit intconst ( registered ho
我理解在GO中创建枚举的惯用方法如下:
type topicStatus int

const (
  registered topicStatus = iota
  active
  inactive
  pending-removal
  removed
 )

但如果我有另一个想要“重用”名称的“枚举”,我会收到一个错误:

type hotelVisit int

const (
   registered hotelVisit = iota
   checked-in
   checked-out
)

在这里,如果我尝试这个,我无法区分topicStatus.registered和hotelVisit.registered之前使用的“注册” – 有没有办法“命名”“枚举”名称?

使用可能导致命名冲突的众多常见词小写标识符来对命名空间进行污染,这不是我认为惯用的Go.创建包只是为了保存一些常量声明也是如此.

我可能会这样做:

type topicStatus int

const (
    tsRegistered topicStatus = iota
    tsActive
    tsInactive
    tsPendingRemoval
    tsRemoved
)

type hotelVisit int

const (
    hvRegistered hotelVisit = iota
    hvCheckedIn
    hvCheckedOut
)

现在,您可以使用ts:= tsPendingRemoval声明和初始化.简洁明了,几乎没有命名冲突的风险.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读