Ruby将Array转换为Fixnum

时间:2014-03-05 08:05:51

标签: ruby

我在研究时没有发现任何相关内容。我基本上试图将数组(例如[5, 1, 7 ,8])转换为具有值5178的fixnum。

3 个答案:

答案 0 :(得分:5)

[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

答案 1 :(得分:4)

执行以下操作:

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

这也有效:

 => [1,2,3,4].join.to_i
 => # 1234

答案 2 :(得分:1)

arr = [5, 1, 7 ,8]
arr.join.to_i