問題一覧に戻る
中級関数
問題63: 内部関数

Solidityの内部関数を学習します - コントラクトとその派生コントラクト内でのみアクセス可能な関数です。内部関数は外部から呼び出せませんが、ガス効率的なコード再利用を提供します。ヘルパー関数、共有ロジック、テンプレートメソッドパターンの実装に最適です。慣例として内部関数はアンダースコアで接頭辞を付けます。内部関数はpublic/external呼び出しよりもガスコストが低いです。内部可視性の理解は、複雑なDeFiシステムで適切なカプセル化と効率的なコード再利用パターンを持つ構造化されたコントラクトの作成に重要です。

pragma solidity ^0.8.0;

contract InternalFunctions {
uint256 private fee = 10;

// コード再利用のための内部関数
function _calculateFee(uint256 amount)
view returns (uint256) {
return (amount * fee) / 100;
}

// 内部関数を使用
function processPayment(uint256 amount)
public view returns (uint256) {
uint256 feeAmount = (amount);
return amount - feeAmount;
}
}