2013-03-02 82 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