如何在Clojure中访问库中的记录?

时间:2015-03-20 04:36:37

标签: interface clojure namespaces record

我正在编写一个实现协议的库,并尝试访问命名空间外的记录。

storage.clj包含记录:

(defrecord FrienduiStorage []
  f-glob/FrienduiStorage
  (get-all-users [this]
   (db/get-all-users)))

我需要它[sventechie.friendui-mysql.storage :refer :all]。 然后像(def FrienduiStorageImpl (->FrienduiStorage))那样实例化它,但这不起作用:(get-all-users (FrienduiStorageImpl))" RuntimeException:无法解析符号:此上下文中的get-all-users"。我做错了什么?

完整的库仓库位于(http://github.com/sventechie/friendui-mysql/)。 我已经制作了一个最小用法示例(http://github.com/sventechie/friendui-mysql-example/)。

1 个答案:

答案 0 :(得分:2)

要将@ mavbozo对您的问题的评论正式化为答案,您需要在常规课程中添加导入

所以定义是

(ns sventechie.friendui-mysql.storage)
(defrecord FrienduiStorage [])

用法是:

(ns somewhere.else
  (:require [sventechie.friendui-mysql.storage :refer :all])
  (:import [sventechie.friendui-mysql.storage.FrienduiStorage]))