在访问Clojure中的defrecord字段时,为什么点破折号优先于点前缀?
例如:-
(defrecord Person [name age])
(def person1 (Person. "Ak" 28))
(.-name person1)
"Ak"
(.name person1)
"Ak"
Run Code Online (Sandbox Code Playgroud)
小智 5
.-用于表示Clojure互操作中的字段访问,只是.在调用方法。
无论哪种方式,如对该问题的评论中所述,使用关键字as in :name是访问该name字段的惯用方式。
其他方法之所以起作用,是因为记录的部分构建是为了支持与宿主语言的互操作。
请记住,对于通常使用Clojure进行数据建模,首选使用地图。这是一个方便的流程图,用于为您的情况选择正确的数据类型。
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |