我正在编写一个实现协议的库,并尝试访问命名空间外的记录。
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/)。
答案 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]))