我有以下功能:
def price
if super == nil
return 'super'
end
super
end
nil
正在退回。这怎么可能?如果if语句等于nil并且然后返回'super'
答案 0 :(得分:2)
如果super
每次都可以返回不同的值,则可以(如果不太可能)。也许尝试以下?它只调用super
一次,所以它没有陷阱。
def price
super || 'super'
end
答案 1 :(得分:1)
这是一种非常奇怪的说法,应该更简单地表达为:
def price
super || 'super'
end
可能是由于某种原因,对同一方法的第二次调用返回nil
。您没有捕获初始结果,因此很难说为什么这不起作用。