返回hash ruby​​的默认值

时间:2017-08-17 21:04:57

标签: ruby

我正在制作这样的哈希:

enum_gender={:male=>1,:female=>2, :default_when_fail=>3}

但是当我访问时我需要

enum_gender[:somekey]

默认返回3或指定一些值

:some_key could be any other :assd, :asf, :asdf

我该怎么做?

3 个答案:

答案 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