Прочная структура

В Solidity `struct` — это определяемый пользователем тип данных, который позволяет вам определять пользовательскую структуру данных, состоящую из нескольких переменных разных типов. Вы можете думать о struct как о шаблоне или схеме для создания объектов, которые используют одну и ту же структуру данных.

Вот пример программы Solidity, демонстрирующий использование struct:

pragma solidity ^0.8.0;
contract StructExample {
struct Person {
string name;
uint age;
address walletAddress;
}
Person[] public people;
function addPerson(string memory name, uint age, address walletAddress) public {
people.push(Person(name, age, walletAddress));
}
function getPersonAtIndex(uint index) public view returns (string memory, uint, address) {
Person storage person = people[index];
return (person.name, person.age, person.walletAddress);
}
}

В этом примере мы определяем структуру Person, которая содержит три переменные разных типов: string с именем name, uint с именем age и address с именем walletAddress. Затем мы определяем две функции:

-`addPerson` — эта функция позволяет нам создать новый объект Person, передав значения для каждой из переменных структуры и добавив его в массив `people`. Объект `Person` создается с помощью конструктора `Person`, который принимает значения для каждой переменной в том порядке, в котором они определены в `struct`.

-`getPersonAtIndex` — эта функция принимает индекс в качестве входных данных и возвращает объект `Person` по этому индексу в массиве `people`. Мы создаем указатель хранилища с именем `person`, который ссылается на объект `Person` по указанному индексу, а затем возвращаем каждую переменную объекта в виде кортежа.

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

Благодарность за чтение