Clojure 使用在另一个命名空间中声明的变量

Clojure 使用在另一个命名空间中声明的变量,clojure,Clojure,我在一个ns(ns dictionary.core)中的一个向量中存储了一个单词字典,我想在另一个命名空间中访问该向量,例如,(ns clojure project.core)我应该怎么做?我研究名称空间的概念已经有一段时间了,但我仍然对如何将另一个文件中定义的变量“导入”到当前项目中感到困惑 (ns clojure-project.core (:require [dictionary.core :as dict])) (defn choose-a-word [] (rand-nth

我在一个ns(ns dictionary.core)中的一个向量中存储了一个单词字典,我想在另一个命名空间中访问该向量,例如,(ns clojure project.core)我应该怎么做?我研究名称空间的概念已经有一段时间了,但我仍然对如何将另一个文件中定义的变量“导入”到当前项目中感到困惑

(ns clojure-project.core
  (:require [dictionary.core :as dict]))

(defn choose-a-word []
  (rand-nth (dict/words)))

名称空间声明有许多选项,因此可能会非常混乱!在我看来,将自己限制在上面的形式是一种很好的方式。

我经常遇到这样的错误:java.io.FileNotFoundException:在类路径上找不到dictionary/core\uu init.class或dictionary/core.clj。这就是我的命名空间的样子:(ns akarify.core(:require[clojure.string:as str])(:require[dictionary.core:as dict])src/dictionary/core.clj下是否有文件?如果有帮助的话,很乐意看看github回购协议?这有点混乱,因为我刚刚创建了回购协议。core.clj和语料库文件是我项目的文件。看起来有点混乱。是否要使用
akarify
dictionary
作为包名?坚持一个。然后,在包中可以有
核心
语料库
。因此,您可能最终需要
dictionary.core
并要求
dictionary.corpus
。您好,Mahmud,您需要将.clj文件放在src目录中。另外,
dictionary.core
名称空间必须位于src/dictionary/core.cljs下的文件中(不像现在那样位于corups中)。