【Solidity】第3章第3回:関数引数と戻り値の基本

本記事では、Solidityにおける関数引数と戻り値の基本的な使い方を解説します。引数と戻り値は、スマートコントラクトの設計において不可欠な要素であり、正しく活用することでコードの効率性と可読性が向上します。
0. 記事の概要
この記事を読むメリット
- 引数と戻り値の基本を理解:関数にデータを渡し、結果を取得する方法を学べます。
- コード設計のスキル向上:効率的で再利用可能な関数を設計するスキルが身につきます。
- 実践的な応用力:スマートコントラクトの機能を高度化するための知識を習得します。
この記事で学べること
- 関数引数と戻り値の基本構造
- 複数の引数や戻り値の活用方法
- よくあるエラーとその解決策
1. 関数引数の基本

1.1 引数とは?
引数とは、関数に外部から渡されるデータのことです。Solidityでは、関数に複数の引数を渡すことができ、それらを処理に活用します。
1.2 基本的な引数の使い方
以下は、Solidityで引数を受け取る関数の基本構造です:
// 引数を受け取る関数の例
function greet(string memory name) public pure returns (string memory) {
return string(abi.encodePacked("こんにちは, ", name));
}
動作解説
この関数は、name
という引数を受け取り、「こんにちは, {name}」というメッセージを生成して返します。
2. 関数戻り値の基本

2.1 戻り値とは?
戻り値とは、関数が処理結果として返すデータのことです。Solidityでは、単一または複数の戻り値を設定することが可能です。
2.2 基本的な戻り値の使い方
以下は、Solidityで戻り値を設定する関数の例です:
// 戻り値を返す関数の例
function add(uint256 a, uint256 b) public pure returns (uint256) {
return a + b;
}
動作解説
この関数は、2つの数値を引数として受け取り、その合計値を戻り値として返します。
3. 複数の引数と戻り値の活用

3.1 複数の引数を使用する関数
関数に複数の引数を渡すことで、複雑な処理を実装することができます。
// 複数の引数を受け取る関数
function calculate(uint256 a, uint256 b, uint256 c) public pure returns (uint256) {
return a * b + c;
}
3.2 複数の戻り値を返す関数
Solidityでは、タプルを使用して複数の値を戻り値として返すことができます。
// 複数の戻り値を返す関数
function getDetails() public pure returns (string memory, uint256) {
return ("Solidity", 2025);
}
動作解説
この関数は、「Solidity」という文字列と「2025」という数値の2つの値を返します。
4. よくあるエラーとその解決策
4.1 引数型のミスマッチ
引数の型が一致しない場合、コンパイルエラーが発生します。
// 修正例
function multiply(uint256 a, uint256 b) public pure returns (uint256) {
return a * b;
}
4.2 戻り値の取り扱いミス
複数の戻り値を受け取る際は、変数の数を揃える必要があります。
// 修正例
(string memory name, uint256 year) = getDetails();
5. 練習問題
以下の課題に挑戦してみましょう:
- 3つの数値を受け取り、その合計値と平均値を返す関数を作成してください。
- 文字列と数値を受け取り、それらを結合したメッセージを返す関数を作成してください。
6. まとめ
本記事では、Solidityにおける関数引数と戻り値の基本について学びました。これらの要素を正しく活用することで、効率的で再利用性の高いコードを設計することができます。次回は、コンストラクタの使い方について詳しく解説します。