Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
您是否知道更好、更快、更智能、更高效或更优雅的方式来执行以下操作?
由于这个数组
a = [171, 209, 3808, "723", "288", "6", "5", 27, "22", 207, 473, "256", 67, 1536]
得到这个
a.map{|i|i.to_i}.sort{|a,b|b<=>a} => [3808, 1536, 723, 473, 288, 256, 209, 207, 171, 67, 27, 22, 6, 5]
您可以使用就地突变来避免创建新数组:
a.map!(&:to_i).sort!.reverse!
但是,如果没有基准,很难知道它是否更快或更有效。
这是一个使用symbol#to_proc
symbol#to_proc
a.map(&:to_i).sort.reverse
这比使用就地修饰符 ( !) 方法更快,但使用更多内存。作为奖励,a如果您想用它做任何其他事情,它会保持原始数组完好无损。
!
a