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) |