Если self является приемником по умолчанию в рубине, и вы вызываете «puts» в определении метода экземпляра, является ли экземпляр объекта получателем этого вызова?Ruby self и puts
E.g.
class MyClass
attr_accessor :first_name, :last_name, :size
# initialize, etc (name = String, size = int)
def full_name
fn = first_name + " " + last_name
# so here, it is implicitly self.first_name, self.last_name
puts fn
# what happens here? puts is in the class IO, but myClass
# is not in its hierarchy (or is it?)
fn
end
end
Очень хорошая точка. Какой здесь протокол, следует ли удалить свой ответ и оставить свой (как это более точно)? –
На самом деле я ошибся. 'self.puts' отличается от вызова метода puts в текущем классе. Итак, первая ревизия моего ответа, которая в основном говорила так же, как ваша, была правильной, а ваша тоже. –