Clojure私人const vars?

时间:2017-04-06 14:12:30

标签: clojure

新的clojure,我想知道..我可以将var定义为^:private和^:const?

因此,例如,执行以下操作是否有意义:

(def ^:private ^:const everything 42)

1 个答案:

答案 0 :(得分:1)

是的,在任何足够现代的Clojure版本上。

很久以前,元数据关键字没有"#34;汇总"但那是几年前修复的。

^:keyword reader-macro只是^{:keyword true}

的语法简写
user> (def ^:private ^:const everything 42)
#'user/everything
user> (meta #'everything)
{:const true, :private true, :line 241457, :column 7, :file "*cider-repl api*", :name everything, :ns #namespace[user]}

与:

相同
user> (def ^{:private true :const true} everything 42)
#'user/everything
user> (meta #'everything)
{:private true, :const true, :line 241816, :column 7, :file "*cider-repl api*", :name everything, :ns #namespace[user]}