Menu
Coddy logo textTech

Структуры

Часть раздела Основы путешествия по Solidity на Coddy. Урок 43 из 53.

Структура объединяет связанные поля под именем пользовательского типа. У каждого поля есть тип и имя, при этом поля могут иметь разные типы. Объявите тип на уровне контракта, создайте значение, а затем обращайтесь к его полям через точку.

Объявите это на уровне контракта:

struct Parcel { uint256 weight; bool ready; }

Используйте её внутри предоставленной функции main:

Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);

Тип Parcel содержит поля weight и ready. Позиционный конструктор задаёт значения в порядке объявления. Этот элемент существует в памяти во время текущего вызова; одно лишь объявление типа структуры не создаёт сохранённых записей.

Используйте точку, за которой следует имя поля, чтобы прочитать или изменить поле структуры.

challenge icon

Задание

Легко

Объявите структуру с именем Badge, содержащую uint256 level и bool active, именно в этом порядке. Создайте Badge в памяти из переданных входных данных и выведите оба поля.

Тесты передают аргументы в main в следующем порядке: uint256 level, bool active. Каждый тест начинается с нового состояния контракта.

Используйте console.log для требуемого вывода. Выводите только запрошенные значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.

Попробуйте сами

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 level, bool active) external view {
        // Напишите ваше решение здесь.
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Solidity