Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回哈希ruby的默认值_Ruby - Fatal编程技术网

返回哈希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

你检查过散列文档了吗?如果有帮助,你能选择它作为“答案”吗@达林奇诺布拉沃