我在Boo Language Guide中遇到了一个奇怪的语法:
setter = { value | a = value }
什么| 运营商是什么意思?
在这方面似乎缺乏 Boo 的文档——似乎
setter = { value | a = value }
是简写
setter = def(value):
a = value
好吧,从来没有使用过 Boo,我的(受过教育的)猜测是它用于将参数传递给闭包 lambda 样式函数。在这种情况下,{ p | C } 指的是一个匿名函数,它采用一个绑定到代码 C 中的 p 的单个参数。
亚当是正确的。该示例的重点是表明 boo 中的 lambda 具有对封闭范围的读写访问权限。
用于指定代码块(匿名函数)的语法是从Ruby和Smalltalk借来的