【发布时间】:2014-09-21 01:04:16
【问题描述】:
所以我正在创建一个解析器来解析我们的客户工程师制作的一些配置文件。我并不特别信任我们的客户工程师。他们通常可以正确拼写,但他们永远不记得要大写什么。这使得Enum 类有点讨厌,因为它们会破坏程序导致Enum 失败,如果他们没有输入正确的字符串。
这是我的枚举类:
object EnumLayoutAlignment extends Enumeration
{
type Alignment = Value
val Vertical = Value("Vertical")
val Horizontal = Value("Horizontal")
}
有没有办法让“垂直”、“垂直”和“垂直”都映射到同一个枚举值?
编辑:@Radai 在输入中提出了一个很好的观点,即 .upper() 但我也想包括“vert”和其他类似的输入
我以this为例
【问题讨论】:
-
为什么不把所有东西都大写?
-
问题是我们的客户工程师仍然不会记得...恕我直言,我希望这是用户证明
-
我的意思是接受他们的输入(==您的代码从 conf 文件中读取的任何值),并将其大写。还是您的意思是他们将直接使用代码而不是您控制的某个界面?
-
@radai 不错,但我还想添加一些其他可能的映射
-
为什么在函数式语言中使用 Enum 而不是抽象数据类型?
标签: scala enums enumeration