我有一个哈希:
h = {a: 1, b: 2}
使用
a = Array(h)
我的期望是a
是一个数组而h
是一个a
的项:[{a:1,b:2}]
但a
实际上是[[:a, 1], [:b, 2]]
。
问题是,如何使用a
获得我期望的Array()
?
答案 0 :(得分:6)
我愿意
a = [h]
但如果你坚持使用Array
,那么你可以这样做(使用Rails / ActiveSupport):
a = Array.wrap(h)
正如Tom Lord在评论中提到的那样,你得到了你得到的结果,因为Array()
(及其兄弟,如Integer()
)是转换函数 。他们接受输入并尝试将其转换为所需类型。而你想要别的东西。
答案 1 :(得分:0)
h = {a: 1, b: 2}
a = []
a.push h
或
a<<h
输出
p a
[{:a=>1, :b=>2}]
答案 2 :(得分:0)
您可以使用小胡子语法:
Array.new(1) {{ a: 1, b: 2 }}
#⇒ [{:a=>1, :b=>2}]