問題一覧に戻る
初級関数
問題30: 複数の戻り値
Solidityで関数から複数の値を返す方法を学習します。関数はタプル - 括弧内の複数の値を返せます。明確さのために名前付き戻り値を使用 - 変数はreturns句で宣言され自動的に返されます。名前付き戻り値は割り当て可能なローカル変数として機能します。複数の戻り値は関連データを返すゲッター、複数の結果を計算する関数、データ取得をバッチ処理してガスコストを削減するのに便利です。このパターンはDeFiプロトコルで一般的です。
pragma solidity ^0.8.0;
contract MultipleReturns {
string public name = "Solidity";
uint256 public version = 8;
// タプル形式で複数値を返す
function getInfo() public view returns (, ) {
return (name, version);
}
// 名前付き戻り値
function calculate(uint256 a, uint256 b)
public
pure
returns (uint256 sum, uint256 product)
{
= a + b;
= a * b;
}
}