Странный синтаксис языка бу - PullRequest
3 голосов
/ 31 августа 2008

Я столкнулся со странным синтаксисом в Boo Language Guide :

setter = { value | a = value }

Что означает | оператор значит?

Ответы [ 4 ]

5 голосов
/ 31 августа 2008

В этой области, похоже, отсутствует документация Boo - кажется, что

setter = { value | a = value }

является сокращением для

setter = def(value):
    a = value
4 голосов
/ 31 августа 2008

Что ж, никогда не использовав Boo, я (образованный) догадываюсь, что это для передачи параметров в функции лямбда-замыкания. В этом случае {p | C} относится к анонимной функции, принимающей один параметр, связанный с p в коде C.

2 голосов
/ 22 октября 2008

Адам прав. Суть примера в том, чтобы показать, что лямбды в boo имеют доступ на чтение и запись к закрытой области видимости.

0 голосов
/ 23 ноября 2008

Этот синтаксис для указания блоков кода (анонимных функций) был заимствован из Ruby и Smalltalk

...