首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非嵌套结构的update vs update-in功能

非嵌套结构的update vs update-in功能
EN

Stack Overflow用户
提问于 2017-01-06 04:37:00
回答 0查看 141关注 0票数 1

我查看了一些Quil examples,并注意到有两个不同的作者(对于“超”和“均衡”示例)使用:

代码语言:javascript
复制
(update-in s [:x] + dx vx)

而不是简单地

代码语言:javascript
复制
(update s :x + dx vx)

这是有原因的吗?如果s是一个深度嵌套的结构,那么它就有意义了。在这两种情况下,键的列表只有一个条目,所以对我来说,上面的两个片段看起来是等价的:

代码语言:javascript
复制
(let [dx 1
      vx 2
      s {:x 5}]
  (println (update-in s [:x] + dx vx))
  (println (update s :x + dx vx)))

{:x 8}
{:x 8}

除了update-in可能会有更多的开销。

我能想到的唯一原因是,如果他们将状态嵌套在未来,它将简化转换。然而,对于这样一个简单的例子,这似乎不太可能,特别是考虑到到处都是魔术常量。

当结构不是嵌套的时候,有理由使用update-in而不是update吗?

EN

回答

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

https://stackoverflow.com/questions/41494233

复制
相关文章

相似问题

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