我是Pact (Kadena.io)的新手,你能给我一个简单的解释关于模块绑定的作用吗?手册中的解释不完全清楚,难以理解。
谢谢。
pact-lang
发布于 2019-05-19 12:12:11
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 is 4“。注意我们在这里做了什么。我们已经获取了与对象obj的键相关联的值,并将它们绑定到一个变量名,我们可以在绑定函数的作用域中使用该变量名。这使我们能够以一种健壮的方式处理对象。它甚至只支持对对象的部分进行部分绑定!
因此,bind函数的关键要点是:
bind允许您将对象中的值作为变量名使用。:=是一个允许您将键绑定到变量名的符号。您可能会在其他函数中遇到这个符号,比如with-read和resume,它总是指将一个值绑定到某个名称的行为。我希望这能把事情说清楚。
https://stackoverflow.com/questions/55980035
复制相似问题