Ruby/Начало работы
Начало работы
правитьОт читателя требуется общее знание компьютеров, включая навыки работы с файловой системой и текстовыми файлами. Прежде чем начать программировать на Ruby, нужно установить интерпретатор и обустроить для себя удобную среду для создания программ. Для испытания кода из учебника можно воспользоваться сетевым интерактивным интерпретатором.
Об установке и настройке рабочей среды Ruby читайте приложение → Установка .
Программы на языке Ruby это текстовые файлы, не подлежащие компиляции. Для их исполнения нужен интерпретатор, который мы уже установили. Чтобы запустить программу на Ruby, необходимо вызвать интерпретатор и передать ему имя файла с программой в качестве параметра.
Чтобы запустить программу с именем Test_program.rb
(программы на Ruby обычно имеют расширение .rb
), в UNIX нужно вызвать консоль и набрать:
ruby Test_program.rb
Чтобы запустить программу из Windows нужно дважды кликнуть на файл с программой. Чтобы окно не исчезало и были видны результаты надо перед местами выхода из программы поставить команду ожидания ввода
STDIN.getc
Первая программа
правитьОткройте редактор и напишите программу. По традиции первая программа должна просто выводить приветствие миру:
puts "Hello, World!"
Сохраните её в файл helloworld.rb
и запустите. На экране будет красоваться надпись:
Hello, World!
На этом традиционную часть можно считать выполненной.
Полигон для испытания программ
правитьЧтобы посмотреть результат выполнения большинства примеров из учебника, не обязательно создавать файл. Достаточно использовать полигон для испытания программ на Ruby irb
, который входит во все дистрибутивы и сам написан на Ruby. Запускается он командой
irb
Полигон — это рубиговорящая командная строка. Она показывает вам результат выполнения каждой строки кода:
irb(main):001:0> [1, 2, 3, 4] =>[1, 2, 3, 4]
Поскольку любая функция в Ruby может быть переопределена в любой момент, важнейшая часть написания большинства небольших программ — это именно эксперименты на полигоне. Посмотрим, например, какие есть методы у обычной строки:
irb(main):002:0> "text".methods =>["methods", "instance_eval", "%", "rindex", "map", "<<", "split", "any?", …
Или посчитаем:
irb(main):003:0> 14 * 5 =>70
Для выхода с полигона — набрать exit
.
По причине того, что интерактивный терминал (полигон) поддерживает автозаполнение при введении табуляции, исходные тексты программ на Ruby принято «отбивать» пробелами (чтобы текст программы можно было просто скопировать в терминал и увидеть, как он работает). Если в irb
скопировать программу, «отбитую» табуляциями, интерактивный терминал будет прерывать каждую строчку ввода чтобы предложить варианты автозаполнения.
fxri: полигон и справочник
правитьВ последних версиях дистрибутива «Установка за один щелчок» для Windows появилась утилита fxri
. Это кроссплатформенное графическое приложение, вобравшее в себя функционал ri
и irb
. Буковки fx
в начале означают использование библиотеки FXRuby. Последние две буквы ri
означают Ruby Informer (Информатор о классах и методах в языке Ruby).
У fxri
три окна: в левом перечислены все методы c описаниями. Верхнее правое окно рассказывает о выбранном методе. Нижнее правое окно реализует программу irb
, описанную выше.
ruby browser
правитьЕсли вы работаете на Linux, вероятно в репозитории вашего дистрибутива найдется Ruby Browser. Приложение позволяет просматривать встроенную документацию на классы и модули Ruby. Та же документация доступна через консольную команду ri
.
puts 2.0 + 1.0
Комментарии и демонстрация результата
правитьКомментарием называется часть программного кода, пропускаемая при обработке (интерпретации или компиляции).
В Ruby знаком начала комментария служит #
. Всё, что между ним и концом строки, пропускается. Пример:
puts 2 + 2 # это комментарий
puts "Привет!" # тоже комментарий
Многострочные комментарии помещаются между словами =begin
и =end
=begin
Это длинный комментарий
Очень длинный
=end
puts "Привет!"
Результат иллюстрируемого кода будет располагаться после последовательности #=>
. Пример:
puts 2 + 2 #=> 4
puts "Привет" #=> Привет
Вывод на экран
правитьВ Ruby есть много методов вывода: print
, printf
, p
, puts
, .display
и другие. Но мы использовать будем два:
- метод
puts
. После вывода строки осуществляет переход на новую. Если приходится выводить объект, не являющийся строкой, тоputs
вызывает метод.to_s
для преобразования его к строке; - метод
p
. Имеет самое короткое название, из-за чего часто используется для отладки. Так же, как иputs
, делает перевод на новую строку после вывода. Перед выводом любого объекта (в том числе и строки) на экран, вызывает метод.inspect
.
Примеры вывода на экран:
puts [1, 2, 3, 4] #=> 1\n2\n3\n4
# \n означает перевод строки
p [1, 2, 3, 4] #=> [1, 2, 3, 4]
puts "Hello!" #=> Hello!
p "Hello!" #=> "Hello!"
puts 5 #=> 5
p 5 #=> 5
Как видно из примера, результаты во время вывода строк и массивов существенно различаются. Если вас не смущают кавычки в результате вывода, то смело используйте p
, если смущают, то puts
.
Иногда возникает ситуация, когда при попытке вывода на экран русскоязычной строки при помощи метода "\323\367\350\362\345 \320\363\341\350!" Чтобы избежать таких ситуаций следует поместить в начало программы следующий программный код: $KCODE = "u"
Кодировка UTF-8 используется в SciTE. При использовании других редакторов, может потребоваться смена кодировки на соответствующую (зависит от редактора и операционной системы) (Для версии ruby1.9.1. вместо$KCODE="u"
# coding: utf-8
который следует добавить в начало программы - прим. Sharipov.ru) |