Mapeamentos
Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 42 de 53.
Um mapping associa chaves a valores no armazenamento. Declare mapping(keyType => valueType) no escopo do contrato e use colchetes para ler ou gravar uma chave. Uma chave que não foi gravada retorna o valor padrão do tipo do valor, como zero para uint256.
Declare isto no escopo do contrato:
mapping(uint256 => uint256) points;Use-o dentro da função main fornecida:
points[4] = 18;
console.log(points[4]);
console.log(points[5]);A atribuição altera apenas a chave quatro. A chave cinco nunca foi atribuída e é lida como zero. Um mapeamento não fornece um comprimento nem uma lista integrada de suas chaves; mantenha as chaves separadamente se uma aplicação precisar iterar sobre elas.
Uma chave de mapeamento não escrita é lida como o valor padrão de seu tipo de valor.
Desafio
FácilDeclare um mapeamento de chaves uint256 para valores uint256 chamado scores. Atribua points à chave player e, em seguida, imprima scores[player] e scores[player + 1].
Os testes passam argumentos para main nesta ordem: uint256 player, uint256 points. Cada teste começa com um estado novo do contrato.
Use console.log para a saída solicitada. Imprima apenas os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.
Experimente você mesmo
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 player, uint256 points) external {
// Escreva sua solução aqui.
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
2Variáveis e Tipos
Inteiros sem sinalEntradas e saídasInteiros com sinalValores booleanosStrings na memóriaCartão de perfil5Funções
Parâmetros de FunçãoRetorno de ValoresFunções PurasChamadas AuxiliaresCálculos ReutilizáveisPratique por conta própria: Playground de Solidity