2013-03-02 39 views
1

使用Rails 3.这里有一个样品的方法:方法必须总是有回报?

def all_users 
    users.as_json 
    end 

我们必须始终有一个方法return?上述工作,但日

def all_users 
    u = users.as_json 
    u 
    end 

另一件事,我试图申请returning,但它必须与do ... end封闭?

任何更好的书写方法?

回答

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中。实际上,块是一种特殊类型的迭代方法,可用于数组,哈希,枚举等。您不必在doend中包含return关键字。

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 

做同样的事情。

+0

要充分说明,方法中最后一行*执行的值是return。考虑if-else语句的返回值作为方法的主体。 – mharper 2013-03-02 01:08:19

+1

很好的例子,我会用你的话更新我的答案。 :) – Kaeros 2013-03-02 01:11:06