2012-01-26 85 views

回答

5

在這種情況下,最簡單的代碼是:

return some_api.get_plan || 'free' 

但由於任務返回分配的值,你可以做任務,並在同一時間,有條件的(事實上,我做這一切的時候讓我的代碼更簡潔)。

+1

你可能應該'返回那個...... –

+0

好點,謝謝。 –

1

您可以使用OR運算符來做到這一點:

return (plan = some_api.get_plan) || 'free' 

它將返回左手錶達(在這種情況下的分配)的值,如果它不是nilfalse,否則它將返回的值正確的表達。

請注意,如果​​不是一個局部變量而是一個plan= setter方法(如attr_writer :plandef plan= val),其轉讓時,才需要。如果不是這種情況return some_api.get_plan || 'free'就足夠了。

+0

這個構造是否有名字? – cjm2671

+1

@ cjm2671,是的,這是布爾運算符。我更新了我的答案。 –

相關問題