Установка, irb и первая программа
Прежде чем писать настоящий код, нужно научиться его запускать. У Ruby два главных режима: интерактивная консоль для экспериментов и обычные скрипты для готовых программ.
Суть:irb— это «живая» консоль, где каждая строка сразу выполняется и показывает результат; файлы.rbзапускаются командойruby имя.rbи нужны для законченных программ.
Главное правило начинающего: ставьте Ruby не из системного пакета, а через менеджер версий. Системный Ruby в macOS или Linux часто старый и его опасно менять. Менеджеры mise, rbenv и asdf позволяют держать несколько версий и переключаться между проектами одной командой.
# установка свежего Ruby через mise
mise use -g [email protected]
ruby -v # проверяем версию
# => ruby 3.4.0 ...
# запуск интерактивной консоли
irb
Разбор: первая программа
Классика жанра — вывести приветствие. В Ruby это одна строка, без обязательного main, точек с запятой и объявлений типов.
# hello.rb
puts "Привет, Ruby!"
name = "Эрнест"
puts "Рад знакомству, #{name}"
Запускаем файл командой ruby hello.rb. Метод puts печатает строку и переводит курсор на новую строку. Конструкция #{...} внутри двойных кавычек — это интерполяция: Ruby вычисляет выражение в скобках и вставляет результат в строку. Это первый инструмент, которым вы будете пользоваться постоянно.
Как работает под капотом
В irb работает цикл REPL: Read (прочитать строку) — Eval (вычислить) — Print (показать результат) — Loop (повторить). Поэтому консоль показывает значение каждого выражения после стрелки =>, даже если вы ничего не печатали через puts. В файле же ничего не выводится автоматически — там вы сами решаете, что показать пользователю.
irb (REPL) файл script.rb
------------------ --------------------
ты пишешь строку ты пишешь весь файл
| |
[Read] читает ruby script.rb
[Eval] вычисляет |
[Print] печатает => ... исполняет сверху вниз
[Loop] ждёт следующую вывод только из puts/print
Разница принципиальная: irb печатает значение последнего выражения сам, а скрипт молчит, пока вы явно не попросите вывод. Новички часто путаются, почему «в консоли видно, а в файле нет».
Частые ошибки
- Одинарные кавычки для интерполяции.
'Привет #{name}'выведет текст буквально — интерполяция работает только в двойных кавычках. - Путать puts, print и p.
putsдобавляет перевод строки,print— нет,pпечатает «отладочное» представление объекта (со кавычками у строк). - Редактировать системный Ruby. Это может сломать утилиты ОС. Всегда работайте через менеджер версий.
Best practices
- Держите
irbоткрытым в соседнем окне и проверяйте идеи на лету. - Для отладки используйте
p, а неputs— он покажет тип и точное содержимое объекта. - Называйте файлы строчными буквами через подчёркивание:
my_script.rb— это соглашение всего сообщества.
Глубже: REPL как тренажёр мышления
Интерактивная консоль — это не просто «поиграться», а полноценный инструмент мышления опытного рубиста. В реальной работе вы будете запускать irb (а в проектах Rails — расширенную консоль приложения) десятки раз в день: проверить, что вернёт метод, посмотреть структуру данных, отладить выражение, прежде чем встроить его в код. Привычка «сначала проверю в консоли» экономит часы: вместо того чтобы менять файл, запускать программу целиком и ждать, вы получаете ответ за секунду. Современная альтернатива стандартному irb — гем pry, который добавляет подсветку синтаксиса, навигацию по объектам и возможность «провалиться» прямо в работающую программу для отладки. Но даже базовый irb в свежих версиях Ruby получил автодополнение по Tab и подсветку, так что отдельный инструмент на старте не нужен. Главное — выработать рефлекс: возник вопрос «а что вернёт эта строка?» — не гадайте, спросите консоль.
Итог. Вы умеете ставить Ruby через менеджер версий, экспериментировать в REPL-консоли irb и запускать законченные скрипты. Интерполяция #{...} и тройка puts/print/p — ваш базовый инструмент вывода.