【问题标题】:Convention for value that starts with numeric以数字开头的值的约定
【发布时间】:2021-10-13 02:21:32
【问题描述】:

我正在 Rust 中创建一个语言环境库,我需要一个地区的枚举。

大多数地区代码可以表示为枚举值,Uk,Jp,Kr ... 。但也有一些地区代码只包含数字,例如001、002 ...等。

所以我像下面这样写了枚举。

#[derive(Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Territory {
    _001,
    _002,
    Us,
    Uk,
    Jp,
    Kp,
    Kr,
}

但是,在 Rust 中,以下划线开头的名称具有不同的含义。 所以我很犹豫这是否是正确的方法。

这种情况还有其他方法吗?在其他设计良好的库中是否有此类案例的示例?

【问题讨论】:

  • 这些名称是否使用得如此普遍以至于不适合使用较长的名称?可能是Unnamed001 之类的东西?
  • @kmdreko 001 不是一个未命名的区域。具体来说,001 表示世界,002 表示非洲。当然,还有很长的英文名字。但地区代码应该是语言中立的。
  • 那么也许只是N001?你将不得不选择一些角色。

标签: rust enums


【解决方案1】:

我认为没有专门针对这种情况的约定。我建议您选择一个字母或一个简短的单词作为前缀。一个例子可能是Num001, Num002, ...。如果你想让你的枚举变量排序并且数值在列表的顶部或底部,甚至像@987654323这样的人工前缀@ 或 Zzz 可能不是一个坏主意。

【讨论】:

  • 我的候选人是 T001、T002 ... 或 _001、_002,如问题中所述。下划线开头真的是个坏主意吗?我希望枚举值被排序..
猜你喜欢
  • 2014-02-09
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多