Чтение онлайн

на главную - закладки

Жанры

Программирование на языке Ruby
Шрифт:

В одной строке может быть несколько предложений, разделенных точками с запятой; только в этом случае точка с запятой и необходима. Логическая строка может быть разбита на несколько физических при условии, что все, кроме последней, заканчиваются обратной косой чертой или лексическому анализатору дан знак, что предложение еще не закончено. Таким знаком может, например, быть запятая в конце строки.

Главной программы как таковой (функции

main
) не существует; исполнение происходит сверху вниз. В более сложных программах в начале текста могут располагаться многочисленные определения, за которыми следует (концептуально) главная программа. Но даже
в этом случае программа исполняется сверху вниз, так как в Ruby все определения исполняются.

1.2.1. Ключевые слова и идентификаторы

Ключевые (или зарезервированные) слова в Ruby обычно не применяются ни для каких иных целей. Вот их полный перечень:

BEGIN END alias and begin

break case class def defined?

do else elsif end ensure

false for if in module

next nil not or redo

rescue retry return self super

then true undef unless until

when while yield

Имена переменных и других идентификаторов обычно начинаются с буквы или специального модификатора. Основные правила таковы:

• имена локальных переменных (и таких псевдопеременных, как

self
и
nil
) начинаются со строчной буквы или знака подчеркивания
_
;

• имена глобальных переменных начинаются со знака доллара

$
;

• имена переменных экземпляра (принадлежащих объекту) начинаются со знака «собачки»

@
;

• имена переменных класса (принадлежащих классу) предваряются двумя знаками

@
(
@@
);

• имена констант начинаются с прописной буквы;

• в именах идентификаторов знак подчеркивания _ можно использовать наравне со строчными буквами;

• имена специальных переменных, начинающиеся со знака доллара (например,

$1
и
$/
), здесь не рассматриваются.

Примеры:

• локальные переменные

alpha
,
_ident
,
some_var
;

• псевдопеременные

self
,
nil
,
__FILE__
;

• константы

K6chip
,
Length
,
LENGTH
;

• переменные экземпляра

@foobar
,
@thx1138
,
@not_const
;

• переменные класса

@@phydeaux
,
@@my_var
,
@@not_const
;

• глобальные переменные

$beta
,
$B2vitamin
,
$not_const
.

1.2.2. Комментарии и встроенная документация

Комментарии в Ruby начинаются со знака решетки (

#
), находящегося вне строки или символьной константы, и продолжаются до конца строки:

x = y + 5 # Это комментарий.

# Это тоже комментарий.

print "# А это не комментарий."

Предполагается, что встроенная

документация будет извлечена из программы каким-нибудь внешним инструментом. С точки зрения интерпретатора это обычный комментарий. Весь текст, расположенный между строками, которые начинаются с лексем
=begin
и
=end
(включительно), игнорируется интерпретатором (этим лексемам не должны предшествовать пробелы).

=begin

Назначение этой программы - излечить рак

и установить мир во всем мире.

=end

1.2.3. Константы, переменные и типы

В Ruby переменные не имеют типа, однако объекты, на которые переменные ссылаются, тип имеют. Простейшие типы — это символ, число и строка.

Числовые константы интуитивно наиболее понятны, равно как и строки. В общем случае строка, заключенная в двойные кавычки, допускает интерполяцию выражений, а заключенная в одиночные кавычки интерпретируется почти буквально — в ней распознается только экранированная обратная косая черта.

Ниже показана «интерполяция» переменных и выражений в строку, заключенную в двойные кавычки:

а = 3

b = 79

puts "#{а} умноженное на #{b} = #{а*b}" # 3 умноженное на 79 = 237

Более подробная информация о литералах (числах, строках, регулярных выражениях и т.п.) приведена в следующих главах.

Стоит упомянуть особую разновидность строк, которая полезна прежде всего в небольших сценариях, применяемых для объединения более крупных программ. Строка, выводимая программой, посылается операционной системе в качестве подлежащей исполнению команды, а затем результат выполненной команды подставляется обратно в строку. В простейшей форме для этого применяются строки, заключенные в обратные кавычки. В более сложном варианте используется синтаксическая конструкция

%x
:

`whoami`

`ls -l`

%x[grep -i meta *.html | wc -l]

Регулярные выражения в Ruby похожи на символьные строки, но используются по-другому. Обычно в качестве ограничителя выступает символ косой черты.

Синтаксис регулярных выражений в Ruby и Perl имеет много общего. Подробнее о регулярных выражениях см. главу 3.

Массивы в Ruby — очень мощная конструкция; они могут содержать данные любого типа. Более того, в одном массиве можно хранить данные разных типов. В главе 8 мы увидим, что все массивы — это экземпляры класса

Array
, а потому к ним применимы разнообразные методы. Массив-константа заключается в квадратные скобки. Примеры:

[1, 2, 3]

[1, 2, "застегни мне молнию на сапоге"]

[1, 2, [3,4], 5]

["alpha", "beta", "gamma", "delta"]

Во втором примере показан массив, содержащий целые числа и строки. В третьем примере мы видим вложенный массив, а в четвертом - массив строк. Как и в большинстве других языков, нумерация элементов массива начинается с нуля. Так, в последнем из показанных выше примеров элемент

"gamma"
имеет индекс 2. Все массивы динамические, задавать размер при создании не нужно.

Поделиться:
Популярные книги

Третий Генерал: Тома I-II

Зот Бакалавр
1. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Третий Генерал: Тома I-II

Методы статистического анализа исторических текстов (часть 2)

Фоменко Анатолий Тимофеевич
Научно-образовательная:
история
5.00
рейтинг книги
Методы статистического анализа исторических текстов (часть 2)

Монстр из прошлого тысячелетия

Еслер Андрей
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
4.75
рейтинг книги
Монстр из прошлого тысячелетия

Эволюционер из трущоб. Том 13

Панарин Антон
13. Эволюционер из трущоб
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 13

Диверсанты Сталина: НКВД в тылу врага

Попов Алексей Юрьевич
Силы особого назначения
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Диверсанты Сталина: НКВД в тылу врага

Бриллианты Юстэсов

Троллоп Энтони
3. Романы о Плантагенете Паллисьере
Проза:
современная проза
5.00
рейтинг книги
Бриллианты Юстэсов

Последний реанорец. Том IX

Павлов Вел
8. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.80
рейтинг книги
Последний реанорец. Том IX

В лапах зверя

Зайцева Мария
1. Звериные повадки Симоновых
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
В лапах зверя

Перстень с трезубцем

Теущаков Александр Александрович
Проза:
историческая проза
6.25
рейтинг книги
Перстень с трезубцем

Стоялов Максим Викторович

Стоялов Максим Викторович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Стоялов Максим Викторович

Основы общей психологии

Рубинштейн Сергей Леонидович
Мастера психологии
Научно-образовательная:
психология
5.00
рейтинг книги
Основы общей психологии

Вечный Герой (сборник)

Муркок Майкл Джон
Шедевры фантастики
Фантастика:
эпическая фантастика
6.25
рейтинг книги
Вечный Герой (сборник)

Кузнецкий мост (1-3 части)

Дангулов Савва Артемьевич
Проза:
военная проза
6.80
рейтинг книги
Кузнецкий мост (1-3 части)

Виллет

Бронте Шарлотта
Проза:
классическая проза
8.57
рейтинг книги
Виллет