##マッパー関数の使い方が分からない!
筆者自身も初心者なのですが、とにかくサンプルが少ない。困った。
もう少し具体的に言えば「文字列」や「数値」、「日付」くらいはまぁまぁ初見やヘルプ、プロパティを少しいじれば何となくイメージはつくものの、「論理」や「制御」あたりになると、もう初心者は「具体的にどう使うの?」というところに困ってしまうのです。(「少なくとも筆者は困りましたので「地球上で少なくとも一人以上は困った」という命題は真であります。)
文字列
数値
日付
論理
制御
ということで「使い方が想像できないマッパー関数の使い方を身に着けるために」超簡単ではありますが、サンプルを日ごろ作ってみたりしています。
######ちなみに
このような実験をするときは以下のようなマスタを作っておくと便利です。
また、フロー変数は以下のようにしています。
変数名 | データ型 | 初期値 | 公開 | 変更 | 説明 |
---|---|---|---|---|---|
Str1 | String | false | true | ||
Str2 | String | false | true | ||
Str3 | String | false | true | ||
Str4 | String | false | true | ||
Str5 | String | false | true | ||
Int1 | Integer | false | true | ||
Int2 | Integer | false | true | ||
Int3 | Integer | false | true | ||
Int4 | Integer | false | true | ||
Int5 | Integer | false | true | ||
Doub1 | Double | false | true | ||
Doub2 | Double | false | true | ||
Doub3 | Double | false | true | ||
Doub4 | Double | false | true | ||
Doub5 | Double | false | true | ||
Dec1 | Decimal | false | true | ||
Dec2 | Decimal | false | true | ||
Dec3 | Decimal | false | true | ||
Dec4 | Decimal | false | true | ||
Dec5 | Decimal | false | true | ||
Bool1 | Boolean | false | false | true | |
Bool2 | Boolean | false | false | true | |
Bool3 | Boolean | false | false | true | |
Bool4 | Boolean | false | false | true | |
Bool5 | Boolean | false | false | true | |
DateTime1 | DateTime | false | true | ||
DateTime2 | DateTime | false | true | ||
DateTime3 | DateTime | false | true | ||
DateTime4 | DateTime | false | true | ||
DateTime5 | DateTime | false | true | ||
Bin1 | Binary | false | true | ||
Bin2 | Binary | false | true | ||
Bin3 | Binary | false | true | ||
Bin4 | Binary | false | true | ||
Bin5 | Binary | false | true |
このフローを複製してサンプル(実験)をしています。
※Boolは初期値を用意しなかったのですが、指定しないとデフォルトでfalseになるようです。
##本題:「else if」を作ってみた。
「SelectIndex」のヘルプに依れば「Choice」と組み合わせてできるらしい。
使用したマッパー関数
- Equal
- SelectIndex
- Choice
####マッパーの中身
※解説が見にくかったのでグリッドを消しました。
消し方はこちら。
こちら。(宣伝)
ちなみにフロー変数は下のようになっています。
変数名 | データ型 | 初期値 | 公開 | 変更 | 説明 |
---|---|---|---|---|---|
Str1 | String | aaa | false | true | |
Str2 | String | bbb | false | true | |
Str3 | String | ccc | false | true | |
Str4 | String | aaa | false | true | |
Str5 | String | ddd | false | true | |
Int1 | Integer | 1 | false | true | |
Int2 | Integer | 2 | false | true | |
Int3 | Integer | 3 | false | true | |
Int4 | Integer | 4 | false | true | |
Int5 | Integer | 5 | false | true |
※必要なものだけ記載しました。
####処理の流れ
- 最初の「(Str1 == Str2)?」を判定。一致ならtrue、不一致ならfalseがSelectIndexに流れます。(SelectIndexにとっては「(Str1 == Str2)?」が「入力1」)
- もしtureがSelectIndexに流れたらSelectIndexはChoiceに「1」(入力1)を流します。Choiceはベースが1なのでChoiceにとっての「入力2」(入力1はSelectIndexから流れてくる数値を判断するために使っているので)である「Int1」の値がObjectに流れます。
- 最初の「(Str1 == Str2)?」が不一致でfalseなら次の「(Str1 == Str3)?」が判定されます。
- 以上を繰り返します。
- 最後の判定「(Str1 == Str5)?」も(つまり全ての判定が)falseならばSelectIndexの入力数「4つ」に+1をした「5」がChoiceに流れます。
- SelectIndexから「5」がChoiceに流れた場合はChoiceにとっての「入力6」である「Int5」の値がObjectに流れます。
##最後に
「やはりASTERIAは初学者のためのサンプルが少ない!」と思うわけですが、「開発経験ゼロでもまぁまぁ三ヶ月くらいでこのくらいはできる」ので、すごいなあ、とも思うわけです。
もっともっとこんな簡単でコンポーネントや関数あなるよ~という情報あったら是非教えてください。
ご清覧ありがとうございました。