ヘルパー関数の呼び出し
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 24/53。
あるヘルパーは別のヘルパーを呼び出して、計算を意味のある手順に分けることができます。外側のヘルパーは返された値を使用し、その後、自身の結果を返します。内部関数は、コントラクト内の別の関数から名前を直接指定して呼び出すことができます。
このヘルパーをコントラクト内に定義します。
function twice(uint256 n) internal pure returns (uint256) {
return n * 2;
}
function adjusted(uint256 n) internal pure returns (uint256) {
return twice(n) + 4;
}これを、用意されている main 関数内で使用します。
console.log(adjusted(6));adjusted は2回呼び出され、12を返してから4を加えます。main には最後の16だけが見えます。この分割により、繰り返しの2倍化ルールを1か所にまとめつつ、別のヘルパーが追加の調整を説明します。
内部ヘルパーは、別の内部ヘルパーを名前で直接呼び出せます。
チャレンジ
簡単doubleValue という純粋な内部ヘルパーを作成し、n の 2 倍を返します。また、withBonus を作成し、doubleValue(n) に 5 を加えた値を返します。withBonus(points) を出力してください。
テストはこの順序で引数を main に渡します: uint256 points。各テストは新しいコントラクト状態で開始されます。
要求された出力には console.log を使用してください。要求された値のみを、タスクで指定されていない限り余分なラベルを付けず、1 行に 1 つずつ出力してください。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 points) external view {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド