我目前正在运行CodeAcademy Ruby课程并且已经完成了重构部分。
例子是
/test
其他人喜欢if / elif / else语句到case语句以及使用'implicit return'语法并将for循环交换到
if 1<2
puts 'string'
end
puts "One is less than two!" if 1 < 2
puts 1 < 2 ? "One is less than two!" : "One is not less than two."
除了简单地让它更具可读性之外,还有什么好处吗?在Python中有pythonic的做事方式,看起来在Ruby中也是如此。但是,如果你用多种语言进行编程并且不记得每种语言的约定,那么保持简单并保持for循环似乎更有意义 - 同样对于其他语句也是如此,除非实际上有一个性能上的好处。
答案 0 :(得分:2)
是的,一个班轮更像是一种Ruby-ist方式。没关系,您可以使用benchmark
模块了解自己的速度。
亲眼看看加速差异:
require 'benchmark'
iterations = 100000000
Benchmark.bm do |bm|
# joining an array of strings
bm.report do
(1..iterations).each do
if 1<2
true
end
end
end
# using string interpolation
bm.report do
(1..iterations).each do
true if 1<2
end
end
# using string interpolation
bm.report do
(1..iterations).each do
1 < 2 ? true: false
end
end
end
结果:
user system total real
5.850000 0.020000 5.870000 ( 5.885982)
5.780000 0.020000 5.800000 ( 5.826295)
5.600000 0.020000 5.620000 ( 5.640354)