亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Ruby中實現枚舉?

如何在Ruby中實現枚舉?

撒科打諢 2019-11-22 10:56:32
在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


查看完整回答
反對 回復 2019-11-22
?
梵蒂岡之花

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精神非常契合。


符號的表現也很好。例如,比較兩個符號是否相等,比比較兩個字符串要快得多。


查看完整回答
反對 回復 2019-11-22
  • 3 回答
  • 0 關注
  • 951 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號