As演算子について質問を受けることがあったので、使い方とかをメモ。
As演算子
As演算子は、FilterやForAllなどの式やGalleryなどのコントロールの中で各レコードを参照する際に、各レコードに対し名前を付けることができる関数。
FilterとかSortとかForAllとかSumとかの入れ子がかなり深くなって、ぱっと見で「何の列と何の列をどう使ってるのか」がわからなくなったときに、As演算子を使って式を書いてあげるとかなり読みやすくなる。
簡単な使い方

※「= true」は書かなくてもよいけど個人的には書いてある方が好き。




※名前はもちろん「listItem」じゃなくてもOKで、なるべくわかりやすい名前を付けてあげると他の人に優しい。



使う必要がある場面
そんなAs演算子を使う場面として「入れ子が深くなって読みにくなった式を読みやすくする」っていのはもちろんあるんだけど、As演算子を使わなきゃいけない場面ってのもいくつかある。
場面1 : 入れ子の式の外側のレコードを参照したい場合
なので「ForAllの外側も式で使いたい(今回は「tate.Value * yoko.Value」で使いたい)ってときはAs演算子が必要になる。
場面2 : 同じ列名を持つデータソースを1つの入れ子内で使う場合
2つ目の使わなきゃいけない場面は同じ列名を持つデータソースを1つの入れ子内で使用する場合。
SampleListのTitle列とNumSampleのTitle列を比較して、どちらにも同じTitleが存在するSampleListのNum列の合計を出す
みたいなことがあった場合、
※今回は0 ~ 3の合計6を出す



As演算子を使ってこんな感じで式を書いてあげれば無事エラーは消える。

※条件式の左辺のTitle列はSampleListの列で、右辺のTitle列はNumSampleの列のことだよって教えてあげるイメージ。
今のところAs演算子が必要なパターンはこのくらいしか思い浮かばないけど、Asを使うと式がかなり見やすくなることが多いので、個人的におすすめ。
おまけ:As演算子を使ってもう少し式を見やすくする



コメント