Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure中的点划线与点前缀_Clojure - Fatal编程技术网

Clojure中的点划线与点前缀

Clojure中的点划线与点前缀,clojure,Clojure,为什么在Clojure中访问defrecord字段时,点划线优先于点前缀 例:- -用于表示中的字段访问,只是正在调用一个方法 无论哪种方式,正如在对问题的评论中提到的,使用:name中的关键字都是访问name字段的惯用方式 其他方法之所以有效,是因为它们的构建部分是为了支持与宿主语言的互操作 请记住,对于一般使用Clojure的数据建模,最好使用映射。一个方便的流程图,用于根据您的情况选择正确的数据类型。对于惯用的clj,:name是首选(:姓名1) (defrecord Person [n

为什么在Clojure中访问defrecord字段时,点划线优先于点前缀

例:-


-
用于表示中的字段访问,只是
正在调用一个方法

无论哪种方式,正如在对问题的评论中提到的,使用
:name
中的关键字都是访问
name
字段的惯用方式

其他方法之所以有效,是因为它们的构建部分是为了支持与宿主语言的互操作



请记住,对于一般使用Clojure的数据建模,最好使用映射。一个方便的流程图,用于根据您的情况选择正确的数据类型。

对于惯用的clj,
:name
是首选<代码>(:姓名1)
(defrecord Person [name age])

(def person1 (Person. "Ak" 28))

(.-name person1)
"Ak"

(.name person1)
"Ak"