Spec-Zone.ru › Nim

std/with

Исходный код Редактировать

Этот модуль реализует макрос with для удобной цепочки вызовов функций. Подробнее см. https://github.com/nim-lang/RFCs/issues/193 и https://github.com/nim-lang/RFCs/issues/192.

С момента: версия 1.2.

Импорты

macros, underscored_calls

Макросы

macro with(arg: typed; calls: varargs[untyped]): untyped
Этот макрос обеспечивает цепочку вызовов функций. Он делает это, подменяя каждый вызов в calls для использования arg в качестве первого аргумента.
Внимание: Это вычисляет arg несколько раз!

Пример:

var x = "yay"
with x:
  add "abc"
  add "efg"
doAssert x == "yayabcefg"

var a = 44
with a:
  += 4
  -= 5
doAssert a == 43

# Nesting works for object types too!
var foo = (bar: 1, qux: (baz: 2))
with foo:
  bar = 2
  with qux:
    baz = 3
doAssert foo.bar == 2
doAssert foo.qux.baz == 3
Исходный код Редактировать

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/with.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API