ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java・Scala Tuple・AsakusaFWの類似点・相違点

2015-12-13 08:44:55 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の13日目です。

Scalaには「タプル」というものがあります。
複数の値を組にしてデータを保持するもの(クラス)で、メソッドから複数の値を返したい場合に便利です。
Object配列を使ったりするのとは違い、データの個数や型が規定できるのが良いです。

Javaには今のところタプルはありません。
OptionalStream APIラムダ式は導入されたけれども、「タプルが欲しい」という意見はたまに聞きます^^;

AsakusaFWでは、フローDSLで使うOperatorFactoryのメソッドの戻り値が、ちょうどタプルのような感じです。
ひとつのメソッド(処理結果)が複数のデータを出力することがあるので、それらを返すクラスとしてタプルのようなクラスが用いられます。
JJUGで発表した資料のBranchの例だと、resultという変数がタプル相当です)
ただし、AsakusaFWの場合はOperatorFactoryのメソッド毎に戻り値のクラスも生成する(メソッド名の先頭を大文字にしたクラス名になる)ので、タプルという共通クラスがあるわけではありませんが。

AsakusaFWでタプル相当の共通クラスがあってもよかったんじゃないか…とちょっと思ったんですが、タプルから値を取り出すときの名前(フィールド名)はOperatorメソッドの役割(演算子の種類)に応じて違う(ほとんどの場合はoutだが、updatedとかfoundとかmissedとか、メソッドによって異なる)ので、やはり個別に作る方が理に適っていそうです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JJUG CCC Fall 2015ボツネタ

2015-12-13 07:54:47 | Weblog

カノジョできないエンジニア Advent Calendar 2015の13日目です。

JJUG CCC Fall 2015で発表した際の資料の「自己紹介」か「まとめ」に

ゆとりさんが欲しがっているのと同じもの(別インスタンス)が欲しいです

とか書こうかどうか迷っていましたが、書かなくてよかったと思います。

以上です。 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする