首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预构建模块绑定

预构建模块绑定
EN

Stack Overflow用户
提问于 2019-05-04 14:17:14
回答 1查看 76关注 0票数 4

我是Pact (Kadena.io)的新手,你能给我一个简单的解释关于模块绑定的作用吗?手册中的解释不完全清楚,难以理解。

谢谢。

pact-lang

EN

回答 1

Stack Overflow用户

发布于 2019-05-19 12:12:11

bind函数接受一个行对象作为输入,并允许您将变量名与与该对象的键相关联的值关联起来。例如,假设我有以下对象:

代码语言:javascript
复制
{ "foo" : "is"
, "bar" : 1
, "baz" : 3
}

当我在这个对象上调用bind时,我可以将对象中的值与我指定的变量名关联起来,然后在绑定范围内的表达式中使用这些变量。考虑以下示例:

代码语言:javascript
复制
(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-readresume,它总是指将一个值绑定到某个名称的行为。
  • 您可以将变量用于任何目的,只要它们不脱离绑定作用域。

我希望这能把事情说清楚。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55980035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档