class Packet
def initialize(name, age, number, array)
@name = name
@age = age
@number = number
@neighbors = array
end
end
p1 = Packet.new("n1", 5, 2, [1,2,3,4])
puts p1.name
У меня есть код выше, но всякий раз, когда я выполняю оператор puts, я получаю ошибку, что имя не является методом.Как распечатать переменные экземпляра объекта ruby
Я не знаю другого способа напечатать имя p1.
Как напечатать имя?
Если не хотите, чтобы обеспечить оценщикам, 'ставит p1.instance_variable_get (: @name) 'будет печатать' "n1" '. –
Вы уже получили ответы на это решение, но вот как вы могли прийти к решению самостоятельно: прочитайте сообщение об ошибке! Что он говорит? В нем говорится, что у вас нет метода под названием 'name'. Ну так что ты делаешь? Вы создаете метод под названием 'name'! Что вы хотите, чтобы этот метод выполнял? Вы хотите, чтобы он возвращал значение переменной экземпляра '@ name'. Итак ... 'def name; @name end'. Вы могли бы прийти к этому решению, просто следуя тому, что сообщение об ошибке уже говорит (ну, подсказывает), что вы должны делать. –
@ JörgWMittag Я это понимаю. Я действительно сделал это, но я помню, что в Ruby есть ярлык, который обычно используется, но я забыл его, так как я не использовал Ruby в течение длительного времени. Поэтому я задал вопрос. – umdcoder