Menu
Coddy logo textTech

Отображения

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

Отображение сопоставляет ключи со значениями в хранилище. Объявите mapping(keyType => valueType) на уровне контракта и используйте квадратные скобки для чтения или записи ключа. Для ключа, который не был записан, возвращается значение по умолчанию для типа значения, например ноль для uint256.

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

mapping(uint256 => uint256) points;

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

points[4] = 18;
console.log(points[4]);
console.log(points[5]);

Задание изменяет только ключ четыре. Ключу пять никогда не присваивалось значение, поэтому он читается как ноль. Отображение не предоставляет длину или встроенный список своих ключей; если приложению требуется перебор, отслеживайте ключи отдельно.

Незаписанный ключ отображения читается как значение по умолчанию для его типа значения.

challenge icon

Задание

Легко

Объявите отображение от ключей uint256 к значениям uint256 с именем scores. Присвойте points ключу player, затем выведите scores[player] и scores[player + 1].

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

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

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

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

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

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

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