BTC $ 8841.09759184 (-3.75 %)
ETH $ 230.357284547 (-3.45 %)
XRP $ 0.2377814584 (-1.72 %)
BCH $ 327.730716572 (0.24 %)
USDT $ 0.9999263674 (-0.2 %)
BSV $ 231.066759905 (-0.99 %)
LTC $ 62.2112879844 (-7.98 %)
EOS $ 3.6595830793 (-6.29 %)
BNB $ 18.8544820125 (-1.74 %)
XTZ $ 2.8638054187 (10.17 %)

Подробности обновления Solidity 0.5.0 с точки зрения переменных

20:00 27/03/2019
Подробности обновления Solidity 0.5.0

Введение

 

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

 

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

 

Итак, существуют следующие категории изменений:

 

  — Весомые изменения языка;

 

  — Изменения, важные для кода;

 

  — Изменения, касающиеся особенностей языка;

 

  — Изменения, касающиеся особенностей компилятора;

 

  — Устранение ошибок.

 

Эти изменения касаются таких компонентов языка, как:

 

  — Изменение в языковой семантике и синтаксисе;

 

  — Управление дубликатами;

 

  — Устранение ненужных компонентов;

 

  — Управление командами взаимодействия контрактов.

 

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

 

Изменения в объявлении переменных

 

Первое изменение касается того, как именно переменные вводятся в контракт. Текст самого изменения выглядит следующим образом:

 

Ключевое слово var теперь запрещено в пользу ясности

 

Так что это значит? В целом существуют два способа объявления переменных в языках программирования. Первый способ подразумевает наличие ключевого слова перед разделом объявления переменных. Например, такой подход используется в языке Pascal. Для создания новых переменных необходимо написать “var”, а после — указать их список.

 

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

 

Сравните два примера:

Изменения в объявлении переменных

Ранее переменную в Solidity можно было объявить двумя способами. Это хорошо видно по примерам из предыдущих версий языка. Такой смешанный подход может запутывать разработчиков, он занимает свободное место в коде и требует дополнительной обработки кода. Устранение такой избыточности повышает качество написания кода.

 

Изменения переменных в хранилище

 

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

 

Текст изменения выглядит так:

 

Отныне запрещены неинициализированные переменные в хранилище

 

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

 

Послесловие

 

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

Нашли ошибку? Выделите её и нажмите Ctrl + Enter чтобы сообщить администратору.

Самые актуальные новости о криптовалютах и блокчейне. Прочтите первым!

Зачем мне это?

Загрузка...