Boo言語ガイドで奇妙な構文に遭遇しました:
setter = { value | a = value }
|は何ですか 演算子はどういう意味ですか?
ブーのドキュメントはこの分野で不足しているようです-それは
setter = { value | a = value }
の省略形です
setter = def(value):
a = value
さて、Booを使用したことがないので、私の(知識に基づいた)推測では、パラメーターをクロージャーラムダスタイルの関数に渡すためのものだと思います。この場合、{p | C}は、コードC内のpにバインドされた単一のパラメーターを受け取る無名関数を指します。
アダムは正しいです。この例のポイントは、boo のラムダが、囲んでいるスコープへの読み取りおよび書き込みアクセス権を持っていることを示すことです。
コードブロック(無名関数)を指定するためのその構文は、 RubyとSmalltalkから借用されています