奇怪的布尔语言语法
时间: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借来的