Сегодня на моем курсе по блокчейну Solidity от Патрика Коллинза я узнал о iнаследовании, переопределении и виртуальном, подвел итоги по массиву и структуре, и я узнал еще несколько вещей, которыми я делюсь со всеми вами.
contract Newcheckmate is scofieldNew{ //ovaride //virtual function store(uint _favouriteNumbner) public override{ newuser = _favouriteNumbner + 5; } }
В языке программирования Solidity наследование реализовано с помощью ключевого слова is. Приведенный код демонстрирует пример наследования в Solidity, где контракт «Newcheckmate» наследуется от контракта «scofieldNew».
Это означает, что «Newcheckmate» имеет доступ ко всем свойствам и методам, определенным в «scofieldNew», а также ко всем свойствам и методам, определенным в любых контрактах, от которых «scofieldNew» может наследоваться.
Переопределяющие функции
contract scofieldNew{ function store(uint _favouriteNumbner) public virtual{ newuser = _favouriteNumbner; } } contract Newcheckmate is scofieldNew{ function store(uint _favouriteNumbner) public override{ newuser = _favouriteNumbner + 5; } }
В этом примере контракт «Newcheckmate» переопределяет функцию «store», определенную в «scofieldNew».
Ключевое слово override указывает, что функция в производном контракте предназначена для замены функции с тем же именем в базовом контракте.
Ключевое слово «виртуальный» перед функцией в базовом контракте указывает, что функцию можно переопределить.
Массивы в Solidity
struct addUser{ string name; uint favoriteNumber; } addUser[] public TestUser;
В контракте «scofieldNew» есть массив структуры «addUser», которая является общедоступной переменной, к которой могут обращаться другие контракты. Структура «addUser» имеет два поля «имя» типа «строка» и «фаворитномер» типа uint. Это демонстрирует использование массивов в Solidity.
Структуры в Solidity
Структура — это определяемый пользователем тип, который содержит набор именованных полей, каждое из которых имеет свой тип. В этом примере структура «addUser» имеет два поля name и FavoriteNumber типа string и unit соответственно.
struct addUser{ string name; uint favoriteNumber; }
Отображение в Solidity
Отображение — это структура данных, позволяющая хранить пары ключ-значение, где ключ — это уникальный идентификатор, а значение — любые данные. В этом примере сопоставление сохраняет имя пользователя в качестве значения и любимый номер пользователя в качестве ключа.
mapping(uint256 => string) public newMappingForUser;
Предоставленный код демонстрирует наследование, переопределение, виртуальные массивы, структуры и отображение на языке программирования Solidity.
Это важные концепции для разработки смарт-контрактов на блокчейне Ethereum и понимания того, как код работает вместе для выполнения различных задач.
В заключение, предоставленный код демонстрирует использование нескольких основных концепций языка программирования Solidity, включая наследование, переопределение функций, массивы, структуры и отображение.
Наследование позволяет одному контракту наследовать свойства и методы другого контракта, позволяя повторно использовать код и расширять существующую функциональность.
Использование ключевых слов «override» и «virtual» позволяет заменять или изменять функции в базовом контракте.
Массивы, структуры и сопоставления являются важными структурами данных, которые позволяют хранить и манипулировать данными в смарт-контрактах.
Использование массивов позволяет хранить несколько элементов данных одного типа, структуры позволяют создавать определяемые пользователем типы с несколькими полями, а сопоставление позволяет хранить пары ключ-значение.
Понимание и реализация этих концепций необходимы для разработки смарт-контрактов на блокчейне Ethereum и создания эффективных и действенных децентрализованных приложений.