【Solidity】複数の戻り値を受け取るには?

Solidityにおいて、関数で複数の戻り値を受け取る方法について解説します。

構文

Solidityにおいて関数で複数の戻り値を受け取るには、以下のようにします。

returnsに戻り値の分だけデータ型を記述し、returnに各戻り値を丸括弧(())で記述します。

なお、複数の戻り値は一つの配列として返されます

function 関数名 アクセス修飾子 状態修飾子 returns (戻り値のデータ型1, 戻り値のデータ型2, 戻り値のデータ型3, ..., 戻り値のデータ型n) {
    return (戻り値1, 戻り値2, 戻り値3, ..., 戻り値n);
}

サンプルコード

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract Test {
    
    function getMultipleReturnValues() public pure returns(uint, string memory, address) {
        return (1, "solidityrun", address(0)); // [1, "solidityrun", 0x0000000000000000000000000000000000000000]という配列で返される
    }

}

Solidityのコードを書いていると、関数から複数の値を返したいことがよくあると思います。そういう場合に備え、複数の値を返す(returnする)書き方を覚えておきましょう。

タイトルとURLをコピーしました