在Ruby中,似乎我们总能在不使用关键字return的情况下顺利过关:
def abc
#some calculations
a = x + some_stuff
end
abc
将返回最后一个表达式计算的内容,这里它将是(x + some_stuff)。那么,是否有必要使用或必须使用返回?在某种情况下,使用return关键字会使问题的答案变得更优雅(或已经使得问题更优雅吗?)
答案 0 :(得分:1)
return
可能会有很多案例。重要的是它允许你打破你的方法,这是你的例子所不能做到的。一个这样的例子
def abc
# do some stuff
return result if desired_flag
raise "undesired"
end
在上面的例子中,在理想情况下,该方法将始终返回一些值。但是,如果没有发生,则会引发错误。
答案 1 :(得分:-1)
这些是我觉得回归会很有用的几种情况。 1)当使用特定构造时,构造具有默认返回值,但是您希望返回其他内容。
[1, 2, 3, 4].each do |element|
return element if x.include?(element ** 3)
end
2)当你想要突破你的方法时。
def some_func
return nil if failed_some_early_check
# function code
@answer # returns the list
end
3)出于文档目的。
4)当你编写一个程序方法时,方法的副作用比返回值重要,事实上为了让人们不要使用中间状态值(ab),你必须返回nil(有当然还有其他方法。)
def side_effect
#computations on private stuff
return nil
end
.....但在这些案例中都没有必要使用返回。