Menu
Coddy logo textTech

Mapowania

Część sekcji Podstawy ścieżki Solidity w Coddy. Lekcja 42 z 53.

Odwzorowanie przypisuje klucze do wartości w pamięci trwałej. Zadeklaruj mapping(keyType => valueType) na poziomie kontraktu i używaj nawiasów kwadratowych, aby odczytać lub zapisać wartość dla klucza. Niezapisany klucz zwraca domyślną wartość typu wartości, na przykład zero dla uint256.

Zadeklaruj to na poziomie kontraktu:

mapping(uint256 => uint256) points;

Użyj tego wewnątrz udostępnionej funkcji main:

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

Przypisanie zmienia tylko klucz cztery. Klucz pięć nigdy nie został przypisany i odczytuje się jako zero. Mapowanie nie udostępnia długości ani wbudowanej listy swoich kluczy; jeśli aplikacja wymaga iteracji, przechowuj klucze osobno.

Nie zapisany klucz mapowania odczytuje się jako wartość domyślną typu wartości.

challenge icon

Wyzwanie

Łatwy

Zadeklaruj mapowanie z kluczy typu uint256 na wartości typu uint256 o nazwie scores. Przypisz points do klucza player, a następnie wypisz scores[player] i scores[player + 1].

Testy przekazują argumenty do main w tej kolejności: uint256 player, uint256 points. Każdy test rozpoczyna się ze świeżym stanem kontraktu.

Użyj console.log do wyświetlenia żądanego wyniku. Wypisz tylko żądane wartości, po jednej w wierszu, bez dodatkowych etykiet, chyba że zadanie określa inaczej.

Spróbuj swoich sił

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 player, uint256 points) external  {
        // Wpisz tutaj swoje rozwiązanie.
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Solidity