ruby – 创建哈希的快捷方式

前端之家收集整理的这篇文章主要介绍了ruby – 创建哈希的快捷方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 Ruby的新手.我正在阅读关于 Rubymonk的教程,我正在学习如何创建哈希.你能告诉我为什么我不能在没有key_value_pairs变量的情况下创建哈希.我的代码抗性大脑似乎合乎逻辑,代码应该在没有它的情况下工作,但事实并非如此.

这不起作用

def artax
  a = [:punch,0]
  b = [:kick,72]
  c = [:stops_bullets_with_hands,false]

  Hash[a,b,c]
end
p artax

这有效.

def artax
  a = [:punch,false]
  key_value_pairs = [a,c]
  Hash[key_value_pairs]
end
p artax

解决方法

请查看 Hash::[]的文档,有三种方法可以调用它:

>使用交替键和值列表,如Hash [key1,value1,key2,value2,key3,value3]
>使用单个数组,包含包含键和值的数组,如Hash [[[key1,value1],[key2,value2],[key3,value3]]]
>使用可转换为哈希的单个对象

在第一种形式中,必须存在偶数个参数,在第二种和第三种形式中,必须有一个参数.

在你的第一个例子中,你用三个参数调用它,它既不是偶数也不是1,因此它不属于上述三种形式中的任何一种.如果你不小心使用了四个数组(或两个数组),即一个偶数,如果它会落在第一个形式下,但它不会完成你所期望的那样:

def artax
  a = [:punch,72]

  Hash[a,b]
end
p artax
# { [:punch,0] => [:kick,72] }

在第二个示例中,您使用单个数组调用它,该数组属于第二个形式.

猜你在找的Ruby相关文章