返回哈希ruby的默认值
我在做这样的杂凑:返回哈希ruby的默认值,ruby,Ruby,我在做这样的杂凑: enum_gender={:male=>1,:female=>2, :default_when_fail=>3} 但当我访问时,我需要它 enum_gender[:somekey] 它默认返回3或指定的某个值 :some_key could be any other :assd, :asf, :asdf 如何执行此操作?您可以使用fetch: enum_gender={:male=>1,:female=>2} enum_gender.fet
enum_gender={:male=>1,:female=>2, :default_when_fail=>3}
但当我访问时,我需要它
enum_gender[:somekey]
它默认返回3或指定的某个值
:some_key could be any other :assd, :asf, :asdf
如何执行此操作?您可以使用
fetch
:
enum_gender={:male=>1,:female=>2}
enum_gender.fetch(key, 3)
enum_gender.fetch('a_non_key', 3) #=> 3
我建议写一些条件句。您可以将其编写为自己的函数、if/else/end块或三元函数 例如:
if enum_gender.has_key?(key)
return enum_gender[key]
else
return <default value>
end
如果枚举具有密钥?(密钥)
返回枚举性别[键]
其他的
返回
结束
您可以这样做
enum_gender = Hash.new(3).merge({:male=>1,:female=>2})
=> {:male=>1, :female=>2}
enum_gender[:somekey]
=> 3
你检查过散列文档了吗?如果有帮助,你能选择它作为“答案”吗@达林奇诺布拉沃