Ruby 将 Array 转换为 Fixnum



我在研究它时没有找到任何相关的东西。我基本上正在尝试将数组(例如[5, 1, 7 ,8])转换为值为 5178 的 fixnum .

执行以下操作:

 => [5, 1, 7 ,8].join.to_f
 => # 5178.0

这也行得通:

 => [1,2,3,4].join.to_i
 => # 1234
[5, 1, 7 ,8].inject{|n, d| n * 10 + d}
# => 5178

比较

t = Time.now
100000.times do
  [5, 1, 7 ,8].inject{|n, d| n * 10 + d}
end
Time.now - t # => 0.108719628
t = Time.now
100000.times do
  [5, 1, 7, 8].join.to_i
end
Time.now - t # => 0.246565502
arr = [5, 1, 7 ,8]
arr.join.to_i

最新更新