Calldata
EVMDefinition
Zone mémoire en lecture seule où sont stockés les arguments des fonctions external. Beaucoup plus gas-efficient que `memory` car les données ne sont pas copiées. À privilégier pour les paramètres des fonctions `external` qui ne nécessitent pas de modification.
English version
Read-only memory area where external function arguments are stored. Much more gas-efficient than `memory` as data is not copied. Prefer for `external` function parameters that don't need modification.
Exemple de Code
// Gas-efficient: calldata évite la copie
function processData(uint[] calldata data) external pure returns (uint) {
uint sum = 0;
for (uint i = 0; i < data.length; i++) {
sum += data[i];
}
return sum;
}
// Moins efficient avec memory
function processDataMemory(uint[] memory data) public pure returns (uint) {
// data est copié en mémoire (coût gas)
}Pages Liees
Pratique ce concept sur Solingo
Maîtrise Calldata avec des exercices interactifs et un IDE intégré.
Commencer gratuitement