Введение
Программа “Привет, мир!” – это классическая и уважаемая традиция в компьютерном программировании. Это небольшая и полноценная первая программа для начинающих, и это хороший способ убедиться, что ваше окружение правильно настроено.
Этот учебник проведет вас через создание этой программы на Ruby. Однако, чтобы сделать программу более интересной, вы измените традиционную программу “Привет, мир!” так, чтобы она запрашивала у пользователя его имя. Затем вы будете использовать имя в приветствии. По окончании учебника у вас будет программа, которая будет выглядеть так при ее запуске:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
Необходимые условия
У вас должна быть настроена локальная среда разработки Ruby на вашем компьютере. Настройте ее, следуя одному из этих учебников:
- Как установить Ruby и настроить локальную среду программирования на macOS
- Как установить Ruby и настроить локальную среду программирования на Ubuntu 16.04
- Как установить Ruby и настроить локальную среду программирования на Windows 10
Шаг 1 — Написание основной программы “Привет, мир!”
Для написания программы “Привет, мир!” откройте текстовый редактор командной строки, такой как nano
, и создайте новый файл:
- nano hello.rb
Как только текстовый файл откроется в окне терминала, вы напишете вашу программу:
puts "Hello, World!"
Давайте разберем различные компоненты кода.
puts
– это метод Ruby, который говорит компьютеру напечатать некоторый текст на экран.
Затем метод puts
следует за последовательностью символов — Привет, мир!
, заключенных в кавычки. Любые символы, находящиеся в кавычках, называются строкой. Метод puts
будет печатать эту строку на экране при запуске программы.
Некоторые методы, такие как метод puts
, в Ruby включены по умолчанию. Эти встроенные методы всегда доступны при создании программ на Ruby. Вы также можете определить свои собственные методы.
Сохраните и выйдите из nano
, нажав клавиши CONTROL
и X
, и когда появится запрос о сохранении файла, нажмите y
и клавишу ENTER
.
Давайте проверим вашу программу.
Шаг 2 — Запуск программы на Ruby
С вашей программой “Hello, World!” написанной, вы готовы к запуску программы. Вы будете использовать команду ruby
, за которой следует название файла, который вы только что создали.
- ruby hello.rb
Программа выполнится и отобразит следующий вывод:
OutputHello, World!
Давайте исследовать, что на самом деле произошло.
Запуск команды ruby
запустил Ruby интерпретатор. Интерпретатор Ruby прочитал указанный вами файл и оценил его содержимое. Он выполнил строку puts "Hello, World!"
, вызвав функцию puts
. Строковое значение Hello, World!
было передано в функцию.
В этом примере строка Hello, World!
также называется аргументом, поскольку это значение, передаваемое методу.
Цитаты, которые находятся по обе стороны от Hello, World!
, не были выведены на экран, потому что они используются для указания Ruby, что они содержат строку. Кавычки определяют, где начинается и заканчивается строка.
Программа работает, но ее можно сделать более интерактивной. Давайте рассмотрим, как это сделать.
Шаг 3 — Запрос ввода
Каждый раз, когда вы запускаете программу, она выводит одинаковый результат. Давайте запросим у пользователя имя. Затем вы сможете использовать это имя в выводе.
Вместо того, чтобы изменять существующую программу, создайте новую программу с названием greeting.rb
в редакторе nano
:
- 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
вы получите значение, сохраненное в переменной name
, которое должно быть именем пользователя.
Сохраните и выйдите из nano
, нажав CTRL+X
, а затем нажмите y
, когда будет запрос на сохранение файла, и нажмите ENTER
.
Теперь запустите программу этой командой:
- ruby greeting.rb
Вас попросят ввести свое имя, введите его и нажмите ENTER
. Вывод может быть не совсем таким, как вы ожидаете:
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Ruby!
Вместо Привет, Sammy! Я Ruby!
сразу после имени есть перенос строки.
Программа захватила все ваши нажатия клавиш, включая клавишу ENTER
, которую вы нажали, чтобы продолжить выполнение программы. В строке нажатие клавиши ENTER
создает специальный символ, который создает новую строку. Вывод программы делает именно то, что вы ему сказали; он отображает введенный вами текст, включая этот новый символ. Просто это не то, что вы хотели. Но вы можете это исправить.
Откройте файл greeting.rb
в вашем редакторе:
- nano greeting.rb
Найдите эту строку в вашей программе:
name = gets
name = gets.chop
Это использует метод chop
Ruby для строки, которую мы захватили с помощью gets
. Метод chop
удаляет последний символ из строки. В этом случае он удаляет символ новой строки в конце строки, созданной при нажатии ENTER
.
Сохраните и выйдите из nano
. Нажмите CTRL+X
, затем нажмите y
, когда будет предложено сохранить файл.
Запустите программу снова:
- ruby greeting.rb
На этот раз, после того как вы введете свое имя и нажмете ENTER
, вы получите ожидаемый вывод:
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Ruby!
Теперь у вас есть программа Ruby, которая принимает ввод от пользователя и выводит его на экран.
Заключение
Теперь, когда вы знаете, как запросить ввод, обработать результаты и отобразить вывод, попробуйте расширить свою программу дальше. Например, спросите у пользователя его любимый цвет и заставьте программу сказать, что ее любимый цвет – красный. Вы даже можете попробовать использовать эту же технику, чтобы создать простую программу Mad-Lib.
Source:
https://www.digitalocean.com/community/tutorials/how-to-write-your-first-ruby-program