銀河鉄道

コレクションで戻り値を集めるコレクティングパラメータ|Collecting Parameter

サムネイル
戻り値まとめたい
関数の
戻り値を
ひとまとめ

関数を細かく分割すると、結果も細かくなるから

結果を収集するパラメータを渡す方が直接的です
it is more direct to pass a parameter that will collect the results.

imprementation Patterns

収集も管理も一括で

コレクティング・パラメータとは|Collecting Parameter

戻り値をコレクションに格納してもらう手法

  1. 関数の結果を格納していく収集用パラメータ
  2. コレクション(配列、リスト、key-value型オブジェクト等)に戻り値を格納する
key-value型がおすすめ

key-value型はkeyでの管理がしやすい
(ディクショナリ、連想配列、マップ、オブジェクト等、言語によって呼び名が異なる)

VBAやPythonならディクショナリ

コレクティング・パラメータの利点

結果が複数でも、格納先は1つになる

  • 複数の結果を1つに格納できる
    • 変数を増やす必要がない
    • 1つを管理すればいいので、簡潔になる
  • 型の違いを気にする必要がない

どんな型でも格納できる

コレクティング・パラメータの使い方

箱を1つ用意して、その箱を各関数へ持ち込む

  1. 関数へコレクションを渡す
  2. 関数は、計算結果をコレクションに格納する
  3. 結果が格納されたコレクションを戻り値として受け取る

「ここに入れてください」と指定してしまう

コレクションの扱い方(戻り値の格納方法)

状況に応じて、2つのうちのどちらかになる

  1. keyは呼び出し元で生成し、関数内で更新をする
    • どんな答えが返ってくるかを先に明示しておける
  2. keyは未作成のまま、関数内で新規追加する
    • keyが作成済かどうかを気にしなくていい

keyは自分で作るのか、関数にまかせるのか

ちなみに、収集用ではなく、状態の引き渡しをおこなう場合はパラメータ・オブジェクトと呼ぶ

パラメータ・オブジェクトの導入は、コードを短くし、その意図を明確にする
The introduction of the parameter object shortens the code, explains its intent

imprementation Patterns

収集用にしても、状態の引き渡し用にしても、オブジェクト(コレクション)が扱いやすい

戻り値を
コレクションで
まとめる

引数をまとめる場合は、パラメータ・オブジェクト

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧