Поиск…


Синтаксис

  • [глава | tail] = [1, 2, 3, true] # можно использовать совпадение шаблонов для разбивки cons-ячеек. Это назначает головке 1 и хвосту [2, 3, true]

  • % {d: val} =% {d: 1, e: true} # это присваивает val 1; никакая переменная d не создается, потому что d на lhs на самом деле является просто символом, который используется для создания шаблона% {: d => _} (обратите внимание, что обозначение ракеты хешей позволяет иметь несимволы в качестве ключей для карт, подобных в рубине)

замечания

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

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

Что касается карт, это просто то, как вы делаете хранилища ключей.

Списки

a = [1, 2, 3, true]

Обратите внимание, что они хранятся в памяти в виде связанных списков. Id est это серия cons-ячеек, где head (List.hd / 1) является значением первого элемента списка, а хвост (List.tail / 1) является значением остальной части списка.

List.hd(a) = 1
List.tl(a) = [2, 3, true]

Кортеж

b = {:ok, 1, 2}

Кортежи являются эквивалентом массивов на других языках. Они хранятся смежно в памяти.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow