3

你更喜欢这个:

def add(a, b)
  puts "ADDING #{a} + #{b}"
  return a + b
end

在这个?

def add(a, b)
  puts "ADDING #{a} + #{b}"
  a + b
end
4

5 回答 5

4

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'

你会在学习过程中学到更多的捷径。

于 2012-05-10T20:36:32.020 回答
2

样式指南说要省略显式返回

避免在不需要的地方返回。

# bad
def some_method(some_arr)
  return some_arr.size
end

# good
def some_method(some_arr)
  some_arr.size
end
于 2012-05-10T20:36:04.910 回答
1

看看这个:http ://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/

它解释了 return 如何在 procs、lambdas 和 blocks 上工作。

于 2012-05-11T05:13:34.797 回答
0

这一切都取决于上下文。通常,没有必要明确表示:rubyists 知道最后一个表达式是返回的表达式。然而,在极少数情况下,最后一个表达式不容易掌握,例如在一个交互或一些晦涩的结构中,所以它可能会很好。但通常,没有必要。

编辑:

显然,当你试图返回一个不是你方法的最后一个表达式时,你必须使用 return。就像你对延迟加载的访问器所做的那样

于 2012-05-10T20:34:51.697 回答
0

优点return a + b

  • 可读性
  • 不易出错

缺点:

  • 冗长的
于 2012-05-10T20:35:28.360 回答