Site icon 8HOST.COM

Написание простой программы Ruby

«Hello, World!» – классический пример тестовой программы. Эта простая программа, которую может написать даже новичок, позволяет также убедиться, что среда правильно настроена и работает.

Это руководство поможет написать такую программу в Ruby. Чтобы несколько разнообразить её, мы покажем, как научить программу запрашивать имя пользователя и использовать его в приветствии. В результате у вас будет программа, которая работает так:

Please enter your name.
8host
Hello, 8host! I'm Ruby!

Требования

Для работы вам понадобится локальная среда разработки. Настроить такую среду можно с помощью одного из руководств:

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.