Menu
Coddy logo textTech

Открытые геттеры состояния

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

Добавление public к переменной состояния заставляет компилятор сгенерировать геттер, который можно вызвать извне контракта. Сеттер при этом не генерируется. Внутри контракта обращайтесь к переменной напрямую по имени. Публичная видимость управляет интерфейсом, но не определяет, является ли хранилище блокчейна секретным.

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

uint256 public score;

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

score = 32;
console.log(score);

Объявление uint256 public score создаёт геттер с именем score для внешних вызывающих сторон. Внутри main простое имя считывает переменную состояния. Для записи по-прежнему требуется код контракта; модификатор public не позволяет вызывающим сторонам напрямую присваивать значение хранилищу.

Публичная переменная состояния получает внешний геттер, но не автоматический сеттер.

challenge icon

Задание

Легко

Объявите uint256 public total. Установите значение total равным переданному amount внутри main и выведите его.

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

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

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

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

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

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

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