Первые 20 часов. Как быстро научиться… чему угодно | страница 73
Документация служит еще одной цели: когда вы пытаетесь дать команду, которую Ruby не понимает, сообщение об ошибке подскажет вам, в каком месте произошел сбой.
Допустим, мы хотим выполнить следующую программу:
animal = "Zebra"
number = 7
puts animal + number
Команда puts означает «печать». Мы просто хотим, чтобы программа вывела на экран то, что она понимает под animal + number.
Вот что я получил в ответ, когда пытался запустить эту программу:
TypeError: can’t convert Fixnum into String from program.
r b:3: in '+'
В переводе на понятный человеку язык: нельзя складывать числа со словами, и поэтому компьютер указывает на ошибку. Похоже на деление на ноль: это невозможно, и программа прекращает работу.
Для исправления ошибки в программе нужно либо преобразовать цифру в строку, и тогда метод «+» объединит две переменных, либо изменить программу, чтобы она делала что-то другое.
Вот исправленная программа:
animal = "Zebra"
number = 7.to_s
puts animal + number
Запуская эту программу, мы получаем результат «Zebra7». Встроенный метод .to_s преобразует цифру 7 в строку, чтобы Ruby мог использовать объединение переменных.
Можно также сделать нечто совсем другое, например:
animal = "Zebra"
number = 7
number.times {puts "# {animal}"}
Результат на экране компьютера:
Zebra
Zebra
Zebra
Zebra
Zebra
Zebra
Zebra
Тут мы просто использовали условный цикл, встроенный в Ruby: number.times означает «выполнять это Х раз, где Х равняется значению числовой переменной». Изменив значение animal или number, мы изменим результат. (Да, вы можете модифицировать эту программу так, что она выведет на экран слово «вомбат» миллиард раз.)
Комментарии и отладка
Знакомясь с литературой, я обратил внимание на еще одно фундаментальное свойство языка Ruby — комментарии. Каждую строку программы, начинающуюся с символа #, Ruby интерпретирует как строку комментария и пропускает при выполнении.
Комментарии к программе делают ее понятной, потому что в них вы простым языком объясняете свои действия. Вот как будет выглядеть программа «Животные» с комментариями:
# Назначение переменных
animal = "Wombat"
number = 1000000000
# Цикл вывода
number.times {puts "# {animal}"}
Комментарии также очень полезны для устранения ошибок: вы можете обозначить как комментарии несколько строк программы, чтобы устранить проблемы или ошибки. В сочетании с командами print или puts это позволяет следить за выполнением программы и убедиться, что она работает так, как и планировалось.