Опубликован: 28.04.2014 | Доступ: свободный | Студентов: 155 / 0 | Длительность: 03:30:00
Лекция 6:

Язык Ruby

< Лекция 5 || Лекция 6: 12 || Лекция 7 >

Булевые типы данных

К булевым типам данных относятся псевдопеременные true (истина), false (ложь) и nil (пустота, вакуум, ничто).

При программировании абсолютно на любом языке, мы часто проверяем что либо на соответствие определенному условию, например такаято переменная пуста? или соответствует ли введенный юзером логин необходимому формату? А передал ли пользователь нам такуюто переменную? В таких случаях используются булевые проверки.

Символы

Символ это экземпляр класса Symbol. Синтаксис - двоеточие перед самим идентификатором (:symbol, :user , :qpi). Символ (symbol) имеет кое что общее со строкой, и с числом. Он похож на строку, так как тоже имеет последовательность символов, и похож на число, т.к. хранится в памяти как число.

Базовые типы данных

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

Целые числа

Представлены типами Fixnum и Bignum. Первый тип используется для чисел, по модулю не превышающих 2^{30}, второй - для чисел более 2^{30}. В арифметических операциях эти числовые типы полностью совместимы и могут свободно использоваться вместе, между ними обеспечивается прозрачная конвертация. Тип Fixnum имеет ограниченную разрядность и использует стандартные арифметические команды процессора; разрядность Bignum ограничена только объёмом доступной оперативной памяти, а операции с ними базируются на алгоритмах вычислений с неограниченной точностью. Это позволяет производить точные вычисления с любым требуемым количеством знаков. Например, для большинства языков программирования написать программу точного вычисления факториала, которая работала бы для аргумента порядка сотни - достаточно сложная задача. В Ruby это делается элементарно, так как проблемы работы с длинными числами берёт на себя интерпретатор.

Другие числовые типы

Тип Float - числа с плавающей запятой, представленные фиксированным числом разрядов. Плавающие числа записываются либо в естественной, либо в экспоненциальной форме. Системная библиотека mathn предоставляет также типы Rational (рациональное число) и Complex (комплексное число). Оба этих типа автоматически преобразуются к целым и плавающим при единичном знаменателе и нулевой мнимой части соответственно.

Строки

Строка - изменяемый массив байтов, представляющий символы в кодировке UTF-8. Реализуются классом String, имеющим большой набор методов, обеспечивающих анализ, манипуляции с содержимым, преобразования, поиск.

Строковые литералы ограничиваются апострофами, двойными кавычками, либо заключаются в конструкцию %q[…] или %Q[…]. Ограничители строки влияют на использование внутри неё специальных символов:

Если строка ограничена апострофами, внутри неё распознаются только специальные последовательности "\\" и "\'", обозначающие соответственно, обратный слэш и апостроф.

Если строка ограничена двойными кавычками, то в ней распознаются также управляющие символы "\t" (знак табуляции), "\n" (перенос строки), "\010" (любой символ в восьмеричной кодировке) и другие.

Ограничители %q[…] или %Q[…] (можно использовать круглые, квадратные, фигурные и угловые скобки) позволяют записывать строки с использованием апострофов и кавычек без экранирования. Форма %q[…] также обеспечивает непосредственный вывод управляющих последовательностей.

Символы. Диапазоны

Символ - это неизменяемая строка. Символьные литералы записываются с префиксом ":" (двоеточие).

Диапазон - это экземпляр класса Range, он представляет собой непрерывную последовательность целых чисел от начального до конечного значения. Диапазон задаётся парой целых чисел, разделённых двумя или тремя точками.

Структура программы

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

Управляющие конструкции

Ruby содержит богатый набор управляющих конструкций; многие их варианты являются достаточно редкими. Условный оператор if выглядит традиционно:

if x > 0 then puts "x - положительное число" 
x ^lt; 0 then
puts "x - отрицательное число" 
else puts "x - нуль" end

Ветвей elsif может быть любое количество, использование ключевого слова then допустимо, но не обязательно, ветви elsif и else могут отсутствовать. Помимо этой "канонической" формы условного оператора, язык поддерживает и несколько других.

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

Контейнеры

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

Обзор объектно-ориентированного программирования

  • Определите вещи, с которыми ваша программа имеет дело
  • Этими вещами (их "чертежами") являются классы
  • Классы содержат методы (поведение)
  • Объекты являются экземплярами этих вещей
  • Объекты содержат переменные экземпляров (состояние)

Итого

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

< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Алина Бёрнс
Алина Бёрнс
Ксения Птицына
Ксения Птицына

Когда можно будет пройти итоговую аттестацию