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.
Wyzwanie
ŁatwyZadeklaruj 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.
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
2Zmienne i typy
Liczby całkowite bez znakuWejście i wyjścieLiczby całkowite ze znakiemWartości logiczneŁańcuchy znaków w pamięciKarta profilu5Funkcje
Parametry funkcjiZwracanie wartościFunkcje czysteWywołania pomocniczeWielokrotnego użytku obliczeniaPoćwicz samodzielnie: Edytor online Solidity