condition="author": NEPUBLIKOVAT, RCR
Opsáno/vypsáno z článku na .
I have some structures that contain objects that refer to those structures. I wanted to write an inspect method. This RCR would allow me to prevent recursion. If Method#== was true when the method is the same method of the same instance, and Method#eql? was true when it was the same method of an instance of the same class (i.e. broader) I could do this to prevent mutual recursion when doing inspect:
class Array
def inspect
history = Method.ancestors
me = history.shift
if history.detect {|x| x == me)
# This is a self reference
result = "Array #{self.id}n"
else
# We're examining some new
# object
result = "Array #{self.id} [n"
self.each { |element|
result += " #{element.inspect"}n"
}
result += "]n"
end
return result
end
endfor example. This would also help in [ruby-talk:52142] I expect. The reason that caller doesn't satisfy my needs here is that it does not tell you which instance it is referring to, and using its information involves manipulating strings. I believe that this suggestion fits in with the philosophy of "eveything being an object".
