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

Вы также можете использовать escape-последовательности внутри строки для обозначения некоторых специальных символов. Например, команда puts "a\nb\nc” покажет три строки вывода. Они заключаются в следующем:

Таблица 2.4 – Специальные escape-последовательности внутри строк или символов

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

Таблица 2.5 – Общие операции над строковыми значениями

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

<p>Диапазоны (Ranges)</p>

Еще один полезный тип данных — Range; это позволяет представлять интервал значений. Используйте две или три точки, разделяющие значения:

a..b обозначает интервал, начинающийся с a и заканчивающийся буквой b включительно.

a...b обозначает интервал, начинающийся с a и заканчивающийся непосредственно перед b, исключая его.

Ниже приведены примеры диапазонов:

1..5 # => 1, 2, 3, 4, и 5.

1...5 # => 1, 2, 3, и 4.

1.0...4.0 # => Включает 3,9 и 3,999999, но не 4.

'a'..'z' # => Все буквы алфавита

"aa".."zz" # => Все комбинации двух букв

Вы также можете опустить начало или конец, чтобы создать открытый диапазон. Вот некоторые примеры:

1.. # => Все числа больше 1

...0 # => Отрицательные числа, кроме нуля

.. # => Ассортимент, который включает в себя все, даже самого себя

Диапазоны также можно применять к разным типам; подумайте, например, о временных интервалах.

С диапазонами можно выполнять множество операций. В частности, Range реализует как Enumerable, так и Iterable, что позволяет ему действовать как сбор данных. Вот несколько служебных методов:

Таблица 2.6 – Общие операции со значениями диапазона

Вы уже можете выражать некоторые данные, используя литеральные значения и переменные в своем коде. Этого достаточно для некоторых базовых вычислений; попробуйте использовать его для некоторых преобразований строк или математических формул. Некоторые виды значений можно сначала объявить, чтобы использовать позже; перечисления — самые простые из них.

<p>Перечисления и символы (Enums and symbols)</p>

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

Например, предположим, что вы взаимодействуете с каким-либо пользователем в многопользовательской системе. Этот конкретный пользователь может быть гостем, обычным пользователем, прошедшим проверку подлинности, или администратором. Каждый из них имеет разные возможности, и их следует различать. Это можно сделать с помощью числового кода для представления каждого типа пользователей, например 0, 1 и 2. Или это можно сделать с использованием типа String, имеющего типы пользователей «гость», «обычный» и «администратор».

Лучшая альтернатива — объявить правильное перечисление возможных типов пользователей, используя ключевое слово enum для создания совершенно нового типа данных. Давайте посмотрим синтаксис:

enum UserKind

   Guest

   Regular

   Admin

end

Переменная, содержащая тип пользователя, может быть назначена путем ссылки на имя типа, а затем на один из объявленных типов:

user_kind = UserKind::Regular

puts "This user is of kind #{user_kind}"

Тип переменной user_kindUserKind, точно так же, как тип 20 — Int32. В следующей главе вы узнаете, как создавать более сложные пользовательские типы. Для каждой потребности могут быть созданы разные перечисления; они не будут смешиваться друг с другом.

Значение перечисления можно проверить с помощью метода, сгенерированного из каждой альтернативы. Вы можете использовать user_kind.guest? чтобы проверить, содержит ли этот user_kind тип Guest или нет. Аналогично, regular? и admin? методы можно использовать для проверки других типов.

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

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

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

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

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

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

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

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

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