Menu
Coddy logo textTech

純粋関数

CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 23/53。

純粋関数は、コントラクトの状態を読み取ったり書き込んだりせず、パラメーターとローカル値から計算を行います。これにより、計算を容易に推論できます。関数を pure として指定することは、コンパイラーによって検証される約束であり、データを消去する要求ではありません。

このヘルパーをコントラクト内で定義します。

function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
    return 2 * (w + h);
}

提供されている main 関数内で使用します。

console.log(perimeter(8, 3));

ヘルパーに必要なのは幅と高さだけです。ヘルパーはそれらの合計の2倍を返すため、純粋関数にできます。メインラッパーはデバッグコンソールを使用するため、viewのままです。ヘルパー自体にはログ出力も状態へのアクセスもありません。

純粋関数は、コントラクトの状態を読み取ったり書き込んだりしません。

challenge icon

チャレンジ

簡単

uint256 型の入力の 3 倍を返す、triple という純粋な内部ヘルパーを作成してください。main から triple(value) を出力してください。

テストは次の順序で main に引数を渡します:uint256 value。各テストは新しいコントラクト状態から開始します。

要求された出力には console.log を使用してください。要求された値のみを、追加のラベルなしで 1 行に 1 つずつ出力してください。ただし、タスクでラベルが指定されている場合を除きます。

自分で試してみよう

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 value) external view {
        // ここに解答を書いてください。
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Solidityプレイグラウンド