你更喜欢这个:
def add(a, b)
puts "ADDING #{a} + #{b}"
return a + b
end
这个?
def add(a, b)
puts "ADDING #{a} + #{b}"
a + b
end
答案 0 :(得分:4)
除非绝对需要,否则Ruby Way™不包含return
语句。
我确信有更好的例子,但这是一个简单的例子。
def divide a, b
return false if b == 0
a/b
end
值得注意的是,Ruby提供了可选地忽略大量语法的方法。 ()
是可选的,除非您将它们嵌套。在许多情况下也可以省略{}
。
func(5, 5, {:hello => 'world'})
# is the same as
func 5, 5, hello: 'world'
随着时间的推移,您将学到更多快捷方式。
答案 1 :(得分:2)
Style Guide表示省略显式返回
避免在不需要的地方返回。
# bad
def some_method(some_arr)
return some_arr.size
end
# good
def some_method(some_arr)
some_arr.size
end
答案 2 :(得分:1)
看看这个:http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/
它解释了返回如何在procs,lambdas和blocks上运行。
答案 3 :(得分:0)
这完全取决于具体情况。通常,没有必要明确地说明:rubyists知道最后一个表达式是返回的表达式。然而,在一些罕见的情况下,最后一个表达式并不容易掌握,如在一个交互或一些模糊的结构中,所以它可能是好的。但通常,没有必要。
编辑:
显然,当你试图返回一个不是你方法的最后一个的表达式时,你有来使用return。就像使用延迟加载的访问器一样
答案 4 :(得分:0)
return a + b
的优点:
缺点: