Ruby 创建哈希的快捷方式
我对Ruby是新手。我正在学习Rubymonk的教程,正在学习如何创建哈希。你能告诉我为什么没有key\u value\u pairs变量就不能创建散列吗。对我的代码抵抗大脑来说,代码在没有它的情况下可以工作似乎是合乎逻辑的,但事实并非如此 这不管用Ruby 创建哈希的快捷方式,ruby,hash,keyvaluepair,Ruby,Hash,Keyvaluepair,我对Ruby是新手。我正在学习Rubymonk的教程,正在学习如何创建哈希。你能告诉我为什么没有key\u value\u pairs变量就不能创建散列吗。对我的代码抵抗大脑来说,代码在没有它的情况下可以工作似乎是合乎逻辑的,但事实并非如此 这不管用 def artax a = [:punch, 0] b = [:kick, 72] c = [:stops_bullets_with_hands, false] Hash[a,b,c] end p artax 这很有效 def
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, 0]
b = [:kick, 72]
c = [:stops_bullets_with_hands, false]
key_value_pairs = [a, b, c]
Hash[key_value_pairs]
end
p artax
要使第一个工作,你必须写
def artax
a = [:punch, 0]
b = [:kick, 72]
c = [:stops_bullets_with_hands, false]
Hash[ [a,b,c] ]
end
请查看文档,有三种方式来调用它:
- 使用交替键和值的列表,如
Hash[key1,value1,key2,value2,key3,value3]
- 使用单个数组,包含包含键和值的数组,如
Hash[[key1,value1],[key2,value2],[key3,value3]]
- 使用可转换为哈希的单个对象
def artax
a = [:punch, 0]
b = [:kick, 72]
Hash[a, b]
end
p artax
# { [:punch, 0] => [:kick, 72] }
在第二个示例中,您使用一个数组来调用它,它属于第二种形式。您想这样做吗
def artax
{punch: 0,
kick: 72,
stops_bullets_with_hands: false}
end
p artax