我正在制作这样的哈希:
enum_gender={:male=>1,:female=>2, :default_when_fail=>3}
但是当我访问时我需要
enum_gender[:somekey]
默认返回3或指定一些值
:some_key could be any other :assd, :asf, :asdf
我该怎么做?
答案 0 :(得分:2)
您可以使用fetch
:
enum_gender={:male=>1,:female=>2}
enum_gender.fetch(key, 3)
enum_gender.fetch('a_non_key', 3) #=> 3
答案 1 :(得分:2)
你可以这样做
enum_gender = Hash.new(3).merge({:male=>1,:female=>2})
=> {:male=>1, :female=>2}
enum_gender[:somekey]
=> 3
答案 2 :(得分:0)
我建议写一些有条件的。你可以把它写成自己的函数,if / else / end块或者你喜欢的三元组。
示例:
if enum_gender.has_key?(key)
return enum_gender[key]
else
return <default value>
end