Первые 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 это позволяет следить за выполнением программы и убедиться, что она работает так, как и планировалось.