Чтение онлайн

на главную - закладки

Жанры

Первые 20 часов. Как быстро научиться… чему угодно
Шрифт:

fullname.reverse

Вот что получится в результате: namfuaKhsoJ

Можно использовать одновременно несколько методов. Если я хочу расположить буквы имени и фамилии в обратном порядке и сделать все буквы строчными, то могу написать команду:

fullname.reverse.downcase

Результат: namfuakhsoj. В точку!

Похоже, научиться программированию на Ruby — это научиться использовать встроенные и создавать новые объекты, классы и методы, а также манипулировать ими. Помимо встроенных,

вы можете при необходимости сами создавать, изменять и удалять объекты, классы и методы, что делает язык мощным и гибким средством программирования [24].

Документация на Ruby [25] содержит стандартный список объектов и методов, доступных для пользователя. Этот список впечатляет, но пугаться вы не должны — применять их все совсем не обязательно. Наоборот, большинство из них на первых порах безопаснее не трогать. Это опции, которые вы можете использовать при необходимости.

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

Потратив восемь часов на исследования и установку программ, я получил следующий результат: у меня на компьютере последняя версия Ruby, я имею возможность загрузить любую нужную мне библиотеку, и я понимаю, как работают программы, написанные на Ruby.

Теперь давайте разберем более сложные программы.

Тестируем с помощью IRB

Изучая Stack Overflow, я обнаружил онлайновое пособие по Ruby под названием «Сложный способ выучить Ruby» («Learn Ruby the Hard Way») [26], написанное Робом Соберсом и Зедом Шоу. Это пособие иллюстрирует работу Ruby на примерах простых программ, предлагая вам изменить их для получения тех или иных результатов. Если нужный результат не получается, вы должны продолжить эксперимент, пока не решите задачу.

Этот метод — кодируем, тестируем, запускаем, отлаживаем — представляет собой превосходный пример быстрой обратной связи. Когда вы запустите программу, компьютер уже через несколько миллисекунд даст знать, работает она или нет. Если в коде есть ошибка, вы можете исправить ее и запустить программу снова, в течение минуты проверив несколько вариантов.

Первые главы пособия посвящены настройке Ruby, установке текстового редактора и обучению работы с IRB — программой, которая запускает на вашем компьютере программы, написанные на Ruby.

Вот как это делается. Вы набираете программу в текстовом редакторе и сохраняете ее в файле. (Пусть имя файла будет program.rb.) Чтобы запустить ее, нужно набрать команду в окне программы Terminal:

$ irb program.rb

IRB запустит вашу программу и выдаст результат, а также покажет действия, предпринятые компьютером для получения этого результата, что очень удобно для отладки. Если программа некорректна, IRB выведет на экран подробное сообщение об ошибке.

«Сложный способ выучить Ruby» начинается с назначения переменных, выполнения основных арифметических действий, манипулирования строками и составления стандартных условных циклов — аналогично примерам, которые приводились выше.

Поделиться:
Популярные книги

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Системный Нуб 4

Тактарин Ринат
4. Ловец душ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Системный Нуб 4

Приручитель женщин-монстров. Том 7

Дорничев Дмитрий
7. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 7

Назад в СССР: 1986 Книга 5

Гаусс Максим
5. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Назад в СССР: 1986 Книга 5

Жандарм 2

Семин Никита
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 2

Гром над Академией. Часть 1

Машуков Тимур
2. Гром над миром
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Гром над Академией. Часть 1

Энфис 5

Кронос Александр
5. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 5

Не грози Дубровскому! Том V

Панарин Антон
5. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том V

Двойня для босса. Стерильные чувства

Лесневская Вероника
Любовные романы:
современные любовные романы
6.90
рейтинг книги
Двойня для босса. Стерильные чувства

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле