Функция bind
принимает объект строки в качестве ввода и позволяет связать имена переменных со значениями, связанными с ключами этого объекта.Например, предположим, у меня есть следующий объект:
{ "foo" : "is"
, "bar" : 1
, "baz" : 3
}
Когда я вызываю bind
для этого объекта, я могу связать значения в объекте с именем переменной, которое я указываю, и впоследствии использовать эти переменныев выражениях в рамках привязки.Рассмотрим следующий пример:
(let ((obj { "foo": "is", "bar": 1, "baz": 3 }))
(bind obj
{ "foo" := foo
, "bar" := bar
, "baz" := baz
}
(format "1 + 3 {} {}" [foo (+ bar baz)]))
)
Это выведет строку «1 + 3 равно 4», связав наши собственные определения имен переменных и используя их в выражении форматирования, которое возвращает строку.Обратите внимание, что мы сделали здесь, хотя.Мы взяли значения, связанные с ключами объекта obj
, и связали их с именем переменной, с которой мы можем работать в рамках функции привязки.Это позволяет нам надежно работать с объектами.Он даже поддерживает частичные привязки только к частям объекта!
Итак, ключевой вывод для функции bind
:
Когда вы работаете с объектами, bind
позволяет работать со значениями вОбъект как имена переменных.
Символ :=
- это тот символ, который позволяет связать ключ с именем переменной.Вы можете встретить этот символ с другими функциями, такими как with-read
и resume
, и он всегда относится к акту привязки значения к какому-либо имени.
Вы можете использовать переменные для любых целей, если они не выходят за рамки привязки.
Надеюсь, это прояснит ситуацию.