очень понятным и довольно эргономичными разделять мутабельные и немутабельные переменные (даже в JS есть const нынче)
упс, немного лишнего вырезал. если бороться за минимализм, может быть два подхода, либо явно говорить где mut, либо явно говорить где const.
* и & это ссылки, кто скорее из Си пришёл — те понимают, кто из динамических языков — увы. Альтернативу явному отображению памяти со ссылками мы так и не придумали — получается либо неэффективно (а хотелось бы побольше таких контрактов исполнять в единицу времени), либо очень ограничено по памяти (a la EVM, где адское давилово с memory layout вообще, вряд ли кому-то это нравится)
Ну и последний удалённый элемент — это storage::Value. Кажется полезным различать, что внутри смарт-контракта должно храниться в сторадже on-chain, а что — только на лету в памяти. В Солидити то же самое есть, на самом деле.
Обсуждают сегодня