你更喜欢这个:
def add(a, b)
puts "ADDING #{a} + #{b}"
return a + b
end
在这个?
def add(a, b)
puts "ADDING #{a} + #{b}"
a + b
end
你更喜欢这个:
def add(a, b)
puts "ADDING #{a} + #{b}"
return a + b
end
在这个?
def add(a, b)
puts "ADDING #{a} + #{b}"
a + b
end
return
除非绝对需要,否则不包含该语句是 The Ruby Way™ 。
我相信有更好的例子,但这里有一个简单的例子。
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'
你会在学习过程中学到更多的捷径。
样式指南说要省略显式返回
避免在不需要的地方返回。
# bad
def some_method(some_arr)
return some_arr.size
end
# good
def some_method(some_arr)
some_arr.size
end
看看这个:http ://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/
它解释了 return 如何在 procs、lambdas 和 blocks 上工作。
这一切都取决于上下文。通常,没有必要明确表示:rubyists 知道最后一个表达式是返回的表达式。然而,在极少数情况下,最后一个表达式不容易掌握,例如在一个交互或一些晦涩的结构中,所以它可能会很好。但通常,没有必要。
编辑:
显然,当你试图返回一个不是你方法的最后一个表达式时,你必须使用 return。就像你对延迟加载的访问器所做的那样
优点return a + b
:
缺点: