Прочная структура
В 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 создавать пользовательские типы данных, соответствующие их конкретным потребностям.
Благодарность за чтение