在Ruby中实现枚举习惯用法的最佳方式是什么?我正在寻找一些我可以(几乎)使用的东西,比如Java/C#枚举。
发布于 2012-02-28 21:38:05
我已经实现了这样的枚举。
module EnumType
def self.find_by_id id
if id.instance_of? String
id = id.to_i
end
values.each do |type|
if id == type.id
return type
end
end
nil
end
def self.values
[@ENUM_1, @ENUM_2]
end
class Enum
attr_reader :id, :label
def initialize id, label
@id = id
@label = label
end
end
@ENUM_1 = Enum.new(1, "first")
@ENUM_2 = Enum.new(2, "second")
end然后它就很容易进行操作了
EnumType.ENUM_1.label..。
enum = EnumType.find_by_id 1..。
valueArray = EnumType.valueshttps://stackoverflow.com/questions/75759
复制相似问题