
■ ASTERIAで変数
ASTERIAで色々と処理を作っていると、どうしても変数を使いたくなります。
基本的に、ASTERIAの処理って前後のコンポーネントで値の受け渡しをするって考え方みたいなので、処理の最初の方で設定した値を使い続けるっていうような処理を作ろうとすると、変数が必要になるわけです。
ASTERIAの変数って色々と種類があるようですが、基本的にはフロー変数というものになるようです。これはフロー中でのみ有効な変数で、javaで言えば private を付けた変数ってことみたいです。
ってことは、ASTERIAのフローって、Javaのクラスに該当するんだろうか・・・
閑話休題、フロー変数は、画面右下の方にある場所から定義します。

とりあえず「公開」をOFF、変更を「ON」にしてみます。
■ 値の設定と参照
変数への値の設定は、Mapperを使用します。「設定した!」って文字を、フロー変数「testHensu」に設定しています。

今度は、フロー変数から値を引っ張ります。Mapperで「変数Val」という1項目のみのcsvを作って、そこにフロー変数「testHensu」の値を突っ込みます。

これを実行すると、実行結果には変数に設定した値が出力されているのが読み取れます。

うん、ここまでは簡単でした。
■ 定数
変数を定義する時に「変更」というチェックがありましたが、これをOFFにすると定数のような使い方が出来るようです。
・・・っていうか、定数として使用する以外に使い道が思いつかない。
先ほど作ったフロー変数「testHensu」の初期値を「ぐぁ」、変更をOFFにします。

値を設定していた最初のMapperを開くと、変数への値の設定がエラーになっています。

constを消すと、フロー変数「testHensu」が見えなくなりました。「変更」をOFFにすると、Mapperの右に出なくなるようです。

そのままフローを実行すると、初期値に設定した「ぐぁ」が出力されました。

ASTERIAで定数を使う場合、定数として定義するのではなく、変数として定義して、変更不可とすることで定数のような使い方をするようです。
■ 後書き
変数という概念を導入したのは悪いことではないと思うのですが、別のコンポーネントの値を引っ張ってくるって考え方があっても面白と思います。
たとえば、最初の方でデータを読込んで加工して別のデータにするとして、処理の最後の方で最初に読込んだデータ上にしか保持していない値を取得して何らかの制御をするとします。
そうなると、変数に値を設定しておけば良いのですが、別のコンポーネントで読込んだストリームから直接値を引っ張るようなことが出来ても面白い気がします。
まぁ、これは私がプログラムを書くときに変数の使用を抑えるようにしているから、自然とそういう考えになっているだけです。
・・・妙に変数を多用する人がいるので、後でプログラムを追うと苦労するんですよね。
次回:ASTERIAで変数を使ってみたNo2 フロー変数公開(パラメータ)
最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


