我在Boo语言指南中遇到了一个奇怪的语法:
setter = { value | a = value }
| 运算符是什么意思?
Boo的文档在这个领域似乎有所欠缺——看起来
是...的简写
setter = def(value): a = value
我从未使用过Boo,但我的(有学问的)猜测是它用于将参数传递给闭包lambda-style函数。在这种情况下,{p | C}指的是一个匿名函数,它接受一个单一参数,绑定到代码C中的p。
亚当是正确的。这个例子的重点在于展示boo语言中的lambda表达式可以读取和写入封闭作用域。
指定代码块(匿名函数)的语法是从Ruby和Smalltalk借鉴而来的。