РАЗРАБОТКА УМНЫХ КОНТРАКТОВ ETHEREUM

Основы Solidity: Типы

Типы ссылок

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

Массивы - это группа элементов одного типа данных, в которой каждый элемент имеет определенное местоположение, называемое индексом. Размер массивов может быть фиксированным или динамическим.

В Solidity A[5] всегда является массивом, содержащим пять элементов типа A, даже если A сам является массивом. Это не относится к другим языкам, таким как C.

Массивы имеют следующие элементы - length, push(), push(x), pop(). Давайте рассмотрим каждый из них на нескольких примерах.

Структуры в Solidity позволяет объявлять новые типы в виде структур. Этот тип представляет собой группу различных типов, которые могут содержать как типы значений, так и ссылочные типы. С одним необходимым ограничением - структура не может содержать член собственного типа, поскольку размер структуры должен быть конечным. Это не означает, что структура не может содержать структуру, например struct A может содержать struct B, но struct A не может содержать свой собственный тип struct A.

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

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

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

Ссылки



Все детали в порядке

Не стесняйтесь задавать любой вопрос.

Будьте в безопасности, делайте хорошую работу и оставайтесь на связи!

Ферди Курт