嗨我有一些數據結構的問題。 讓我們想想一個有很多孩子的男人,但一個孩子只能有一個父親。所以孩子知道他的父親,父親知道他所有的孩子。 我想使用to_s
方法來創建一個答案,取決於誰在問一個班級。 我發現caller
代表實際的堆棧。我必須用它來產生這個決定(接縫完美,因爲不需要寶石)。ruby:獲取調用者類
請告訴我的問題:我不知道如何如何決定浩呼籲,看看這個類:
class child
...
def to_s
str = "I'm "
str += @first_name
str += @last_name
str += " my dad is"
str += @father.to_s
end
end
class dad
...
def to_s
str = "I'm "
str += @first_name
str += @last_name
str += " my childs are"
@kids.each{|child| str+= child.to_s}
end
end
如果child
電話to_s
從dad
比如,它應該只返回名稱,其他如果一個dad
調用他的child
的實例之一,它也應該返回名稱。 我的起源問題更復雜,所以爲了解決這個問題,我必須在這種情況下阻止無限遞歸。
我該如何與來電者的課程進行比較?
實現一個單獨的'name'方法和用途「'我爸是#{father.name}「'和'」我的孩子是#{kids.map(&:name).join(',')}'' – Stefan
當調用函數時,您可以傳遞'self'作爲參數,以便被調用者具有對調用者的引用 –