奇怪的布尔语言语法

时间:2020-03-05 18:45:39  来源:igfitidea点击:

我在Boo语言指南中遇到了一种奇怪的语法:

setter = { value | a = value }

什么是|运算符是什么意思?

解决方案

回答

好吧,我从来没有使用过Boo,我(受过教育的)猜测是它用于将参数传递给闭包lambda样式的函数。在这种情况下,{p | C}表示匿名函数,它采用绑定到代码C中的p的单个参数。

回答

Boo的文档似乎在这方面缺乏-似乎

setter = { value | a = value }

是的简写

setter = def(value):
    a = value

回答

亚当是正确的。该示例的目的是表明boo中的lambda具有对封闭范围的读取和写入访问权限。

回答

指定代码块(匿名函数)的语法是从Ruby和Smalltalk借来的