Сегодня на моем курсе по блокчейну 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 и создания эффективных и действенных децентрализованных приложений.