gpt4 book ai didi

ruby - 不调用 `Hash#to_a` 将 Ruby 哈希转换为数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:19 24 4
gpt4 key购买 nike

Savon gem我正在使用的是返回单个对象或数组,在 SOAP 响应返回之前我无法知道它会是哪个。

为方便起见,我希望将一个nil 响应转换为[],将单个响应转换为[obj] 和一个数组保持为数组。这可以很容易地用 Kernel#Array 完成。 ,因此:

> Array nil
=> []
> Array 1
=> [1]
> Array [1,2,3]
=> [1, 2, 3]

但是,因为 Kernel#Array 调用 to_a,它因 Hash which overrides to_a 而失败:

> Array({a: 1})
=> [[:a, 1]]
> Array([{a: 1}, {b: 2}])
=> [{:a=>1}, {:b=>2}]

在上面的第 2 行,我希望看到 [{:a=>1}]

最佳答案

如果您使用的是 ActiveSupport,您可以执行以下操作:

> Array.wrap({a: 1})
=> [{:a, 1}]
> Array.wrap([{a: 1}, {b: 2}])
=> [{:a=>1}, {:b=>2}]

关于ruby - 不调用 `Hash#to_a` 将 Ruby 哈希转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com