@RaMzz

Почему не работает код?

Подскажите пожалуйста доступным языком для новика только учусь читаю книгу решил модернизировать код, но ничего не получается хотя должно же работать уже голову сломал :(
Вот так работает
class Dog
  
   def name=(value)
     if value == ""
       raise "Введите имя, вы не ввели имя"
     end
     @name = value
   end
   def age=(value)
    if value < 0
      raise "An age of #{value} isn't valid!"
    end
    @age = value
   end
   def talk
      puts "#{@name} says Bark!"
   end
   def report_age
     puts "#{@name} уже #{@age} лет, она бежит. "
   end
end
 
dog = Dog.new
dog.name = "Daisy"
dog.age = 5
dog.talk
 
dog.report_age

Изменил в целях обучения
Но если добавить метод move ошибка
class Dog
  
   def name=(value)
     if value == ""
       raise "Введите имя, вы не ввели имя"
     end
     @name = value
   end
   def age=(value)
    if value < 0
      raise "An age of #{value} isn't valid!"
    end
    @age = value
   end
   def talk
      puts "#{@name} says Bark!"
   end
   def move=(distantion)
    if value == ""
       raise "Введите куда движется"
    end
     @distantion = value
   end
   def report_age
     puts "#{@name} уже #{@age} лет, она бежит к #{@distantion}"
   end
end
 
dog = Dog.new
dog.name = "Daisy"
dog.age = 5
dog.talk
dog.move = "дереву"
dog.report_age
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F
если добавить метод move ошибка

А что за ошибка - предлагаете угадывать, да? Ну... окей.

Замените def move=(distantion) на def move=(value).
Ответ написан
Комментировать
Развивайте внимательность. У Вас в аргументах переменная distantion, а ниже используется переменная value.

def move=(distantion)
    if value == ""
       raise "Введите куда движется"
    end
     @distantion = value
   end
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы