2011-12-05 96 views
0

我有以下功能:如果聲明不要再追零

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

nil被返回。這怎麼可能?如果if語句超級,如果它等於零,然後返回'超級'

回答

2

如果super每次都可以返回不同的值,這是可能的(如果不太可能)。也許嘗試以下?它只呼叫super一次,所以它沒有這個陷阱。

def price 
    super || 'super' 
end 
1

這是說的東西,應該更簡單地表示爲一個非常奇怪的方式:

def price 
    super || 'super' 
end 

這可能是同樣的方法將第二次調用由於某種原因,返回nil的情況。你沒有捕獲到最初的結果,所以很難說爲什麼這不起作用。