我有一个Book用 定义的类型defrecord,以及一个将其转换为字符串的函数:
(defrecord Book [title author])
(defn book->string [book] (str (:title book) " by " (:author book)))
(book->string (->Book "Foo" "Bar")) ;; "Foo by Bar"
Run Code Online (Sandbox Code Playgroud)
是否可以延长记录以便我可以拨打电话(str (->Book "Foo" "Bar"))?
您不必扩展任何内容,只需覆盖toString方法即可:
(defrecord Book [title author]
Object
(toString [_] (str title " by " author)))
Run Code Online (Sandbox Code Playgroud)
测试:
(str (->Book "Foo" "Bar"))
=> "Foo by Bar"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |