問題一覧に戻る
中級ガス最適化
問題47: Uncheckedブロック
Solidityのuncheckedブロックを学習します - ガス最適化のために自動オーバーフロー/アンダーフローチェックを無効化します。Solidity 0.8.0以降、算術演算は自動的にオーバーフローをチェックし、追加のガスを消費します。uncheckedブロックは安全だと分かっている演算でこれらのチェックをバイパスし、大幅なガスを節約します。慎重に使用してください - オーバーフローが不可能または意図的である場合のみ使用します。一般的な使用例は現実的にオーバーフローしないカウンターのインクリメントです。uncheckedブロックの理解はDeFiプロトコルのループのような高頻度操作でのガス最適化に不可欠です。
pragma solidity ^0.8.0;
contract UncheckedBlock {
uint256 public counter;
// uncheckedブロックの使用
function increment() public {
{
counter++;
}
}
// ガス最適化のための加算
function addUnchecked(uint256 a, uint256 b)
public pure returns (uint256) {
{
return a + b;
}
}
}