相关疑难解决方法(0)

我可以引用另一个命名空间并将其函数公开为当前的ns吗?

我想use会这样做,但似乎在当前命名空间中创建的映射不公开.这是我想要实现的一个例子:

(ns my-ns
  (:use [another-ns :only (another-fct)]))

(defn my-fct
  []
  (another-fct 123)) ; this works fine
Run Code Online (Sandbox Code Playgroud)

然后我有另一个这样的命名空间:

(ns my-ns-2
   (:require [my-ns :as my]))

(defn my-fct-2
  []
  (my/another-fct 456)) ; this doesn't work
Run Code Online (Sandbox Code Playgroud)

我想这样做是因为它another-ns是一个访问数据库的库.我想在单个命名空间(my-ns)中隔离对该库的所有调用,这样所有与数据库相关的函数都将在单个命名空间中隔离,并且如果需要,更容易切换到另一个数据库.

这个库的一些功能对我来说很好,但我想增加其他功能.假设读取函数很好,但我想通过一些验证来扩充写入函数.

到目前为止,我看到的唯一方法是将所有映射手动编码,my-ns即使对于我没有增加的功能也是如此.

namespaces clojure

18
推荐指数
2
解决办法
2973
查看次数

如何在用户定义的命名空间中启动REPL?

写入(in-ns 'dbx)文件并加载它并不会更改repl的默认命名空间(使用cygwin/console).命名空间仍然是user=>,而不是dbx=>.

vikrant[28] clj
Clojure 1.3.0
user=> (load-file "try1.clj")
#(Namespace dbx)
user=>
Run Code Online (Sandbox Code Playgroud)

我们如何在脚本文件中定义的命名空间中启动REPL?

clojure read-eval-print-loop

12
推荐指数
3
解决办法
9383
查看次数

标签 统计

clojure ×2

namespaces ×1

read-eval-print-loop ×1