2011-12-05 7 views
0

をキャッチされていない場合、私は、次の機能を持っている:の文がnil

def price 
    if super == nil 
    return 'super' 
    end 
    super 
end 

nilが返されています。これはどのように可能ですか? if文でnilと等しい場合にsuperをキャッチしてから 'super'を返すべきである場合

答えて

2

superが毎回異なる値を返すことができる場合は、これが可能です(可能性は低い)。おそらく次のように試してみてください。一度だけsuperと呼ばれるので、その落とし穴はありません。

def price 
    super || 'super' 
end 

それは同じメソッドの2番目の呼び出しが何らかの理由でnilを返す場合があります:としてより簡単に表現しなければならない何かを言って、非常に奇妙な方法だ

def price 
    super || 'super' 
end 
1

。あなたは最初の結果をキャプチャしていないので、なぜこれが機能していないのかは分かりません。

関連する問題