Учебники

Эликсир — Типы данных

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

Числовые Типы

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

42

Когда вышеуказанная программа запущена, она дает следующий результат —

42

Вы также можете определить числа в восьмеричном, шестнадцатеричном и двоичном основаниях.

восьмеричный

Чтобы определить число в восьмеричной базе, поставьте перед ним «0o». Например, 0o52 в восьмеричном эквиваленте равно 42 в десятичном.

шестнадцатеричный

Чтобы определить число в десятичной базе, добавьте к нему префикс «0x». Например, 0xF1 в шестнадцатеричном формате эквивалентно 241 в десятичном виде.

двоичный

Чтобы определить число в двоичной базе, добавьте к нему префикс «0b». Например, 0b1101 в двоичном коде эквивалентно 13 в десятичном виде.

Elixir поддерживает 64-битную двойную точность для чисел с плавающей запятой. И они также могут быть определены с использованием стиля возведения в степень. Например, 10145230000 можно записать как 1.014523e10

атомы

Атомы — это константы, чье имя является их ценностью. Их можно создать с помощью символа цвета (:). Например,

:hello

Булевы

Эликсир поддерживает true и false как Booleans. Оба эти значения на самом деле привязаны к атомам: true и: false соответственно.

Струны

Строки в Elixir вставляются между двойными кавычками и кодируются в UTF-8. Они могут занимать несколько строк и содержать интерполяции. Чтобы определить строку, просто введите ее в двойных кавычках —

"Hello world"

Для определения многострочных строк мы используем синтаксис, похожий на python, с тройными двойными кавычками —

"""
Hello
World!
"""

Мы подробно узнаем о строках, двоичных файлах и списках символов (аналогично строкам) в главе о строках.

Бинарные

Двоичные файлы — это последовательности байтов, заключенные в << >>, разделенные запятой. Например,

<< 65, 68, 75>>

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

<<65, 255, 289::size(15)>>

Списки

Elixir использует квадратные скобки для указания списка значений. Значения могут быть любого типа. Например,

[1, "Hello", :an_atom, true]

Списки поставляются со встроенными функциями для заголовка и хвоста списка с именами hd и tl, которые возвращают заголовок и хвост списка соответственно. Иногда, когда вы создаете список, он возвращает список символов. Это потому, что когда elixir видит список печатных символов ASCII, он печатает его как список символов. Обратите внимание, что строки и списки символов не равны. Мы обсудим списки в следующих главах.

Кортеж

Elixir использует фигурные скобки для определения кортежей. Как и списки, кортежи могут содержать любое значение.

{ 1, "Hello", :an_atom, true 

Здесь возникает вопрос: зачем указывать списки и кортежи, если они работают одинаково? Ну, у них есть разные реализации.

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

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