戻り値
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 22/53。
関数は、結果を出力せずに計算できます。returnsで結果の型を宣言し、本文内でreturnを使用します。呼び出し元は返された値を保存し、より大きな式の中で使用できます。値を返すことと出力することは別の操作です。
このヘルパーをコントラクト内に定義します。
function doubled(uint256 n) internal pure returns (uint256) {
return n * 2;
}用意されているmain関数内で使用します。
uint256 value = doubled(9);
console.log(value + 1);ヘルパーは18を返します。呼び出し元は1を加えて19を出力します。return文は現在の関数呼び出しを終了するため、無条件のreturnの後にある通常の命令はその呼び出しに寄与できません。
返された値は、ヘルパーによって出力されることなく、呼び出し元が保存したり使用したりできます。
チャレンジ
簡単n の n 倍を返す、square という名前の internal pure ヘルパーを記述してください。main では、square(side) を変数に格納して出力してください。
テストは次の順序で main に引数を渡します:uint256 side。各テストは新しいコントラクト状態で開始されます。
要求された出力には console.log を使用してください。要求された値のみを、1 行に 1 つずつ出力し、タスクで指定されていない限り余分なラベルは付けないでください。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 side) external view {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド