带有元数据的 Clojure 变量
是否可以使用元数据创建一个新的变量,而无需经过“中间”变量?
换句话说,我知道我可以执行以下操作:
(def a-var 2)
(def another-var (with-meta a-var {:foo :bar}))
但是有没有办法在不先创建 a-var
的情况下创建 another-var
呢?
Is it possible to create a new var with metadata without going through an "intermediate" var?
In other words, I know I can do the following:
(def a-var 2)
(def another-var (with-meta a-var {:foo :bar}))
but is there any way to create another-var
without creating a-var
first?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样:
Like this:
另请注意,
(def another-var (with-meta a-var {:foo :bar}))
不会将元数据附加到 Var,而是附加到值。由于在您的示例中a-var
保存一个整数,因此我不希望您的示例完全起作用,因为整数无法保存元数据。Also note, that
(def another-var (with-meta a-var {:foo :bar}))
does not attach the metadata to the Var, but to the value. And since in your examplea-var
holds an Integer, I wouldn't expect your example to work at all, since Integers can't hold metadata.