1

我有一个大小为 35K 的数组,想将其转换为哈希。我能够使用以下方法转换大小为 12K 的数组。

a = []
12000.times { |i| a << i }
Hash[*a]

但是,当我尝试大小超过 12K 的数组时,它会引发 SystemStackError: stack level too deep 错误。

任何人都可以建议吗?出了什么问题?

4

1 回答 1

1

你可以试试这个

a = [*1..1_000_000].to_a
b = {}
a.each_slice(2){|k,v| b[k] = v}
于 2013-02-07T12:29:09.363 回答