Вопрос

Я столкнулся со странным синтаксисом в руководстве по языку Boo :

setter = { value | a = value }

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

Это было полезно?

Решение

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

setter = { value | a = value }

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

setter = def(value):
    a = value

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top