1
루비 1.9.2 에서처럼 to_s가 정의되어 있으면 inspect는 to_s ??를 반환합니다. 왜 이렇게 바뀔까요? Ruby 1.9.2에서 to_s가 변경된 이유는 무엇입니까?
이
:class ToSClass
def to_s
"#{self.class.name} to_s called"
end
end
class InspectClass
def inspect
"#{self.class.name} inspect called"
end
end
class BothClass
def inspect
"#{self.class.name} inspect called"
end
def to_s
"#{self.class.name} to_s called"
end
end
c1 = ToSClass.new
puts c1.inspect
puts c1.to_s
c1 = InspectClass.new
puts c1.inspect
puts c1.to_s
c1 = BothClass.new
puts c1.inspect
puts c1.to_s
출력이 :
ToSClass to_s called
ToSClass to_s called
InspectClass inspect called
#<InspectClass:0x316baf8>
BothClass inspect called
BothClass to_s called
"1.9.2 및 1.8.7에서 프로그램을 실행했습니다"또는 "1.9.2 및 1.9.1"을 의미합니까? –
방금 1.8.7에서 테스트했는데 그 결과는 같습니다. 'to_s' 만 덮어 쓰면'inspect'가 그것을 호출 할 것입니다. – Chuck
죄송합니다. 잘못된 프로그램 출력을 붙여 넣었습니다. 나는 그것을 새롭게 할 것이다. – AboutRuby