Читаем Crystal Programming. Введение на основе проекта в создание эффективных, безопасных и читаемых веб-приложений и приложений CLI полностью

В этой главе представлено несколько новых концепций, которые помогут вам приступить к написанию реальных приложений Crystal. Вы узнали об основных типах значений (числа, текст, диапазоны и логические значения), о том, как определять переменные для хранения данных и управления ими, а также о том, как управлять потоком выполнения с помощью условных операторов и циклов. Вы рассмотрели создание методов повторного использования кода различными способами. Наконец, вы узнали о сборе данных с помощью Array и Hash, а также об использовании блоков и параметров splat. Это набор инструментов, который вы будете использовать до конца книги.

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

<p>Дальнейшее чтение</p>

Некоторые языковые детали были опущены, чтобы сделать текст кратким и целенаправленным. Однако вы можете найти документацию и справочные материалы по всему, что здесь объясняется более подробно, на веб-сайте Crystal по адресу https://crystal-lang.org/docs/.

<p>3. Объектно-ориентированное программирование</p>

Как и многие другие, Crystal — объектно-ориентированный язык. Таким образом, в нем есть объекты, классы, наследование, полиморфизм и так далее. Эта глава познакомит вас с возможностями Crystal по созданию классов и работе с объектами, а также познакомит вас с этими концепциями. Crystal во многом вдохновлен Ruby, который сам по себе многое заимствует из языка Small Talk, известного своей мощной объектной моделью.

В этой главе мы рассмотрим следующие основные темы:

• Понятие объектов и классов

• Создание собственных классов.

• Работа с модулями

• Значения и ссылки — использование структур.

• Общие классы

• Исключения

<p>Технические требования</p>

Для выполнения задач этой главы вам понадобится следующее:

• Рабочая установка Кристалла.

• Текстовый редактор, настроенный для использования Crystal.

Инструкции по настройке Crystal см. в Главе 1 «Введение в Crystal» и в Приложении A «Настройка инструментов» для инструкций по настройке текстового редактора для Crystal.

Вы можете найти весь исходный код этой главы в репозитории этой книги на GitHub по адресу https://github.com/PacktPublishing/Crystal-Programming/tree/main/Chapter03.

<p>Понятие объектов и классов</p>

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

Классы — это чертежи, на основе которых создаются объекты. Каждый объект является экземпляром некоторого класса. Класс определяет структуру данных, доступные методы, поведение и внутреннюю реализацию. Класс объекта часто называют его типом: каждый объект имеет тип.

В Crystal все является объектом: каждое значение, с которым вы взаимодействуете, имеет тип (то есть класс) и методы, которые вы можете вызывать. Числа — это объекты, строки — это объекты — даже nil является объектом класса Nil и имеет методы. Вы можете запросить класс объекта, вызвав для него метод .class:

p 12.class # => Int32

p "hello".class # => String

p nil.class # => Nil

p true.class # => Bool

p [1, 2, "hey"].class # => Array(Int32 | String)

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

Каждый класс предоставляет некоторые методы объектам, которые являются его экземплярами. Например, все экземпляры класса String имеют метод size, который возвращает количество символов строки в виде объекта типа Int32. Аналогично, объекты типа Int32 имеют метод с именем +, который принимает другое число в качестве единственного аргумента и возвращает его сумму, как показано в следующем примере:

p "Crystal".size + 4 # => 11

Это то же самое, что и более явная форма:

p("Crystal".size().+(4)) # => 11

Это показывает, что все распространенные операторы и свойства — это просто вызовы методов.

Некоторые классы не имеют буквального представления, и объекты необходимо создавать непосредственно с использованием имени класса. Ниже приведен пример:

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных