これはどう解釈したらいいのかな
OnCommaTest
{
_list = ('Hoge','Moge','Boge')
"%(CommaTestCore(_list))"
}
CommaTestCore
{
_text = ''
foreach _argv; _word
{
_text ,= _word
}
_text
}
YAYA文法で書かれたこのコードは文法上間違っています。
CommaTestCore関数内で、配列ではない文字列変数_textに対して、配列結合演算子「,=」を使用しているからです。
ではこの関数の実行結果はどうなるのか。
,Hoge,Moge,Boge
えーっと、何が起きているんだろう……?
察するに、演算子「,=」が絡んだ時点で、_textは要素「''」を持つ1要素の配列扱いになり、
それに順次_list(=_argv@CommaTestCore)の要素が追加され
%()で展開(TOSTRと同等?)されてカンマ連結された
ということで良いんでしょうか。うん。
なんか記事書いてるうちに頭の中が整理された気がします。
…いや、一瞬「,=」のカンマが演算結果に漏れたのか!? とか思ったものでね!(・∀・)