Mappings en Solidity
El almacén clave-valor; las claves ausentes se leen como cero.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
// A mapping is a key-value store; missing keys read as zero.
contract ShareLedger {
mapping(address => uint256) public shares;
mapping(address => mapping(uint256 => bool)) public votedOn;
function issue(address member, uint256 amount) external {
shares[member] += amount;
}
function castVote(uint256 proposal) external {
votedOn[msg.sender][proposal] = true;
}
function hasShares(address member) external view returns (bool) {
return shares[member] > 0;
}
}
Cómo funciona
mapping(address => uint256)no tiene largo ni iteración.- Los mappings anidan: dirección a propuesta a bool.
- Leer una clave ausente devuelve el cero del tipo, jamás revierte.
Palabras clave y builtins usados aquí
addressboolcontractexternalfunctionmappingpublicreturnreturnstrueuint256
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 519
- Tokens
- 97
- Ritmo de tres estrellas
- 55 tpm
Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 106 segundos.
Paso 1 de 3 en Almacenamiento; paso 5 de 28 en Fundamentos del lenguaje.