在Ruby中實現枚舉用法的最佳方法是什么?我正在尋找可以(幾乎)使用的東西,例如Java / C#枚舉。
3 回答

慕容森
TA貢獻1853條經驗 獲得超18個贊
兩種方式。符號(:foo符號)或常量(FOO符號)。
當您想提高可讀性而不用文字字符串亂碼時,使用符號是合適的。
postal_code[:minnesota] = "MN"
postal_code[:new_york] = "NY"
當您具有重要的基礎值時,常數是適當的。只需聲明一個模塊來保存您的常量,然后在其中聲明常量。
module Foo
BAR = 1
BAZ = 2
BIZ = 4
end
flags = Foo::BAR | Foo::BAZ # flags = 3

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
最慣用的方法是使用符號。例如,代替:
enum {
FOO,
BAR,
BAZ
}
myFunc(FOO);
...您可以只使用符號:
# You don't actually need to declare these, of course--this is
# just to show you what symbols look like.
:foo
:bar
:baz
my_func(:foo)
它比枚舉更開放,但與Ruby精神非常契合。
符號的表現也很好。例如,比較兩個符號是否相等,比比較兩個字符串要快得多。
- 3 回答
- 0 關注
- 951 瀏覽
添加回答
舉報
0/150
提交
取消