Unchecked
SolidityDéfinition
Bloc désactivant les vérifications d'overflow/underflow introduites en Solidity 0.8. Permet d'économiser du gas quand on sait qu'un overflow est impossible (ex: dans un compteur de boucle). À utiliser avec précaution car réintroduit les risques d'overflow. Utile pour les optimisations avancées.
Version anglaise
Block disabling overflow/underflow checks introduced in Solidity 0.8. Saves gas when overflow is known to be impossible (e.g. in loop counter). Use with caution as it reintroduces overflow risks. Useful for advanced optimizations.
Exemple de Code
contract UncheckedExample {
// Avec vérification (par défaut en 0.8+)
function normalIncrement(uint256 x) public pure returns (uint256) {
return x + 1; // Revert si overflow
}
// Sans vérification (optimisé)
function unsafeIncrement(uint256 x) public pure returns (uint256) {
unchecked {
return x + 1; // Pas de vérification, économise ~100 gas
}
}
// Utilisation sûre dans une boucle
function sum(uint256[] memory arr) public pure returns (uint256) {
uint256 total = 0;
for (uint256 i = 0; i < arr.length; ) {
total += arr[i];
unchecked { i++; } // i ne peut pas overflow (limité par arr.length)
}
return total;
}
}Termes Liés
Pages Liées
Pratique ce concept sur Solingo
Maîtrise Unchecked avec des exercices interactifs et un IDE intégré.
Commencer gratuitement