(多くの Smalltalker あるいはケント・ベック的には [:a :b :c | a + b + c])と書くブロック(変数付き)ですが、このブロック変数宣言パートのスペースはどこまで省略できるのでしょうか。試してみたところ、最後の変数を除いたすべての宣言変数名直後のスペース以外は省けるようです。つまり、[:a :b :c|までスペース省略可で、[:a:b:c|までしちゃうと叱られます( [: Argument name expected ->a:b:c|a+b+c] というように)。「:」はセパレータとしては解釈されないようです。どこかで、ブロック変数宣言は「 : と | で囲み、: で区切る」と書いてあるのを見かけましたが、どうやらこの解釈はウソのようです。[ :a :b :c | a + b + c ] value: 1 value: 2 value: 3 " => 6 "
このページを編集 (2902 bytes)
以下の 1 ページから参照されています。 |
This page has been visited 3892 times.