- 697 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:57:14 ]
- _の正確な意味を知るにはScala言語仕様の6.23 Anonymous Functionの
Placeholder Syntaxを読むのが良いと思う。特に英語圏のブログでScala やってる人が多用してる気がするけど、正確な意味を解説した記事ってないんだよな。 不正確だけどおおざっぱな説明としては、_を囲む最も内側の式が無名関数化される。 だから、println(_)だと、(x) => println(x)になるけど(_を囲む一番内側の式がprintln(_) だから)、println(_ + 3)はprintln((x) => x + 3)になる(_を囲む一番内側の式が_ + 3だから) あと、無名関数化される式はsyntactic category(文法定義上の非終端記号みたいなもの)が Exprである必要がある。 基本的に、_がどう展開されるかは純粋に構文的に決まり、型とかは一切関係しない。
|

|