我想问你我如何在散列中匹配nil值,例如:

aAnimals = {1=>'dog', 2=>'cat'}
puts laAnimals[1]  # dog
puts laAnimals[2]  # cat
puts laAnimals[3]  # nil

如果数值为零或大于矩阵的长度,我如何设置“无动物”,例如:
laAnimals = {1=>'dog', 2=>'cat'}
laAnimals.default = 'no animal'

puts laAnimals[1]  # dog
puts laAnimals[2]  # cat
puts laAnimals[3]  # no animal

我想要这样的东西:laAnimals = {1=>'dog', 2=>'cat', default='no animal'}…有可能吗?

最佳答案

Exupery的答案是正确的,但是如果您没有权限创建您正在使用的哈希,则可以使用Hash#fetchdocs)。

laAnimals = {1=>'dog', 2=>'cat'}
puts laAnimals.fetch(1, 'no animal')  # dog
puts laAnimals.fetch(2, 'no animal')  # cat
puts laAnimals.fetch(3, 'no animal')  # 'no animal'

我个人更喜欢这种访问散列的方式,因为如果密钥(在您的示例中,12)不存在,它将引发异常。

关于ruby - RUBY:如何匹配哈希中的零值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30446436/

10-10 04:00