Написание простой программы Ruby
«Hello, World!» – классический пример тестовой программы. Эта простая программа, которую может написать даже новичок, позволяет также убедиться, что среда правильно настроена и работает.
Это руководство поможет написать такую программу в Ruby. Чтобы несколько разнообразить её, мы покажем, как научить программу запрашивать имя пользователя и использовать его в приветствии. В результате у вас будет программа, которая работает так:
Please enter your name.
8host
Hello, 8host! I'm Ruby!
Требования
Для работы вам понадобится локальная среда разработки. Настроить такую среду можно с помощью одного из руководств:
- Установка Ruby и настройка локальной среды разработки в Ubuntu 16.04
- Установка Ruby и настройка локальной среды разработки в macOS
1: Базовая программа «Hello, World!»
Чтобы написать базовую программу «Hello, World!», откройте текстовый редактор и создайте новый файл:
nano hello.rb
Вставьте следующий код:
puts "Hello, World!"
Рассмотрим разные компоненты этого кода подробнее.
puts – это метод Ruby, который выводит на экран текст.
После этого метода идет последовательность символов «Hello, World!». Все символы, которые находятся в кавычках, составляют строку. Метод puts отобразит эту строку на экране.
Некоторые методы доступны в Ruby по умолчанию. Такие встроенные методы всегда доступны при написании программ Ruby. Также вы можете определять собственные методы.
Сохраните и закройте файл (Control+X, Y).
2: Запуск программы
Теперь нужно попробовать запустить программу «Hello, World!». Для этого можно использовать команду ruby.
ruby hello.rb
Команда должна вернуть:
Hello, World!
Команда ruby запустила интерпретатор Ruby. Интерпретатор читает указанный файл и оценивает его содержимое. Он выполнил код puts “Hello, World!”, вызвав функцию puts и передав ей строковое значение «Hello, World!».
В данном случае строка Hello, World! также называется аргументом. Аргумент – это значение, передаваемое методу.
Кавычки, в которые помещена строка, не отображаются, потому что они необходимы, чтобы обозначить интерпретатору Ruby пределы строки.
Итак, программа работает. Теперь попробуйте сделать ее интерактивной.
3: Пользовательский ввод
Эта простая программа при запуске будет выдавать один и тот же результат. Чтобы немного усложнить ее, настройте запрос пользовательских данных. Полученные данные программа сможет использовать в выводе.
Создайте новый файл для программы в текстовом редакторе:
nano greeting.rb
Вставьте эту строку, которая будет запрашивать имя пользователя:
puts "Please enter your name."
Это уже знакомый вам метод puts, который выводит текст на экран.
Следующая строка будет собирать пользовательские данные:
puts "Please enter your name."
name = gets
Метод gets собирает ввод с клавиатуры. Это приостанавливает программу, позволяя пользователю ввести любой текст. Программа продолжит работу, когда пользователь нажмет клавишу Enter на своей клавиатуре. Все нажатия клавиш, включая нажатие клавиши Enter, собираются программой и преобразуются в строку символов.
Эти символы можно использовать в выводе программы. Для этого присвойте полученную строку переменной name. Ruby сохраняет строки в памяти компьютера, пока программа не завершит работу.
Затем добавьте эту строку:
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"
Здесь снова используется метод puts. Также здесь используется функция Ruby, которая называется строковой интерполяцией. Она позволяет извлекать присвоенное переменной значение и помещать его внутри строки. Вместо слова name в строке будет значение, введенное пользователем.
Сохраните и закройте файл (Ctrl+X, Y).
Запустите программу. Она запросит имя пользователя. Введите имя и нажмите Enter. Вывод должен выглядеть так:
Please enter your name.
8host
Hi, 8host
! I'm Ruby!
Как видите, вывод программы разделяется, и вместо одной строки «Hi, 8host! I’m Ruby!» мы получаем две строки.
Дело в том, что программа фиксирует все нажатия клавиш, включая клавишу Enter, которая запускает дальнейшие действия программы. Но в строке нажатие клавиши Enter создает специальный символ, который переводит весь последующий вывод в новую строку. Потому программа отображает текст именно так, разбив строку на две. Это можно исправить.
Откройте файл greeting.rb:
nano greeting.rb
Найдите эту строку:
name = gets
И добавьте в нее:
name = gets.chop
Метод chop будет применяться к строке, полученной методом gets. Метод chop удаляет последний символ из строки. В данном случае это символ новой строки, создаваемый нажатием клавиши Enter.
Сохраните и закройте файл.
Запустите программу:
ruby greeting.rb
И вы получите одну строку:
Please enter your name.
8host
Hi, 8host! I'm Ruby!
Теперь у вас есть программа Ruby, которая может запрашивать данные пользователя и использовать их в выводе.
Заключение
Попробуйте расширить свою простую программу. Например, вы можете запросить любимый цвет пользователя и научить программу называть ее любимый цвет. Можно даже попытаться использовать эту технику для создания простой программы Mad-Lib.
Tags: Ruby