Mappages
Fait partie de la section Fondamentaux du Journey Solidity de Coddy. Leçon 42 sur 53.
Un mapping associe des clés à des valeurs dans le stockage. Déclarez mapping(keyType => valueType) au niveau du contrat et utilisez des crochets pour lire ou écrire une clé. Une clé qui n’a pas été écrite renvoie la valeur par défaut du type de valeur, par exemple zéro pour uint256.
Déclarez ceci au niveau du contrat :
mapping(uint256 => uint256) points;Utilisez-le dans la fonction main fournie :
points[4] = 18;
console.log(points[4]);
console.log(points[5]);L’affectation ne modifie que la quatrième clé. La cinquième clé n’a jamais été affectée et sa valeur est lue comme zéro. Un mapping ne fournit ni longueur ni liste intégrée de ses clés il faut suivre les clés séparément si une application a besoin d’itérer.
La lecture d’une clé de mapping non écrite renvoie la valeur par défaut de son type de valeur.
Défi
FacileDéclarez un mapping de clés uint256 vers des valeurs uint256 nommé scores. Attribuez points à la clé player, puis affichez scores[player] et scores[player + 1].
Les tests transmettent les arguments à main dans cet ordre : uint256 player, uint256 points. Chaque test commence avec un état du contrat vierge.
Utilisez console.log pour la sortie demandée. Affichez uniquement les valeurs demandées, une par ligne, sans libellés supplémentaires, sauf si la tâche les spécifie.
Essayez vous-même
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 player, uint256 points) external {
// Écrivez votre solution ici.
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
2Variables et types
Entiers non signésEntrées et sortiesEntiers signésValeurs booléennesChaînes en mémoireCarte de profil5Fonctions
Paramètres des fonctionsValeurs de retourFonctions puresAppels de fonctions auxiliairesCalculs réutilisablesEntraînez-vous par vous-même : Playground Solidity