方法必须总是有回报?

时间:2013-03-02 00:43:22

标签: ruby-on-rails

使用Rails 3.这是一个示例方法:

  def all_users
    users.as_json
  end

我们必须始终在方法中使用return吗?上述工作,但是

  def all_users
    u = users.as_json
    u
  end

另一件事,我尝试应用returning,但必须始终用do ... end括起来?

编写方法的更好方法是什么?

2 个答案:

答案 0 :(得分:1)

在Ruby中,返回方法的最后一个执行(感谢mharper)行。

所以这个:

def all_users
  users.as_json
end

这:

def all_users
  u = users.as_json
  u
end

而且:

def all_users
  u = users.as_json
  return u
end

做同样的事情。

答案 1 :(得分:1)

Rubyists希望尽可能省略return个关键字。所以在你的情况下,这是编写方法的首选方法

def all_users
  users.as_json
end

还有你的第二个问题

I tried to apply returning, but it must always be enclosed with do ... end?

doend组合用于在Ruby中编写称为“块”的东西。实际上,块是一种特殊的迭代方法,可用于数组,哈希,可枚举等。您不必在returndo中包含end关键字。