奇怪的Boo语言语法

3

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

setter = { value | a = value }

| 运算符是什么意思?

4个回答

5

Boo的文档在这个领域似乎有所欠缺——看起来

setter = { value | a = value }

是...的简写

setter = def(value):
    a = value

4

我从未使用过Boo,但我的(有学问的)猜测是它用于将参数传递给闭包lambda-style函数。在这种情况下,{p | C}指的是一个匿名函数,它接受一个单一参数,绑定到代码C中的p。


2

亚当是正确的。这个例子的重点在于展示boo语言中的lambda表达式可以读取和写入封闭作用域。


0

指定代码块(匿名函数)的语法是从RubySmalltalk借鉴而来的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接