Clojure命名空间转换为_
如Noir错误页面所示的错误:Clojure命名空间转换为_,clojure,noir,Clojure,Noir,如Noir错误页面所示的错误:java.io.FileNotFoundException:在类路径上找不到边界/lat_long\uu init.class或边界/lat_long.clj 需要它的代码: (ns boundaries.views.boundary (:use noir.core hiccup.core hiccup.page-helpers) (:require [boundaries.lat-long :as lat-long]
java.io.FileNotFoundException:在类路径上找不到边界/lat_long\uu init.class或边界/lat_long.clj
需要它的代码:
(ns boundaries.views.boundary
(:use noir.core
hiccup.core
hiccup.page-helpers)
(:require
[boundaries.lat-long :as lat-long]
[noir.response :as resp]))
为什么它要查找的是
lat_long
,而不是指定的lat long
?Bounders/lat-long.clj以及相应的Bounders.lat-long命名空间都存在。JVM不允许类名称中包含-
s,因此Clojure编译器将它们转换为\ucode>s
问题很可能与project.clj依赖项有关
诊断此类问题时:
- REPL中是否提供了名称空间
- .class文件是否显示在项目的lib目录中
- 重新运行
lein deps
JVM不允许类名称中包含-
s,因此Clojure编译器将它们转换为
s
问题很可能与project.clj依赖项有关
诊断此类问题时:
- REPL中是否提供了名称空间
- .class文件是否显示在项目的lib目录中
- 重新运行
lein deps
您需要将边界/lat-long.clj重命名为边界/lat_long.clj
请注意,您不必更改名称空间名称。clojure约定对函数和命名空间名称使用“-”
Stuart Sierra的回复是:“这是Java互操作性的必要解决方法。”您需要将bounders/lat-long.clj重命名为bounders/lat_-long.clj
请注意,您不必更改名称空间名称。clojure约定对函数和命名空间名称使用“-”
Stuart Sierra的回复是:“这是Java互操作性的一个必要解决方案。”我明白了。在我学习的过程中,我希望遵守惯例。Clojure开发人员是否像Java中那样普遍采用camelcase?我真的不是那个询问Java约定的人,希望有人会评论。。。这是非常好的使用-在名称,我只是不喜欢。我将把它从我的帖子中删除,这对我来说太固执己见了;-)哦,不!幸运的是,我想制作其他人使用的东西,正因为如此,惯例和个人美学才是最重要的important@dAni但是如果编译器将它们转换为u,那么我该怎么办?将文件命名为uu,将ns命名为-?是。查看Clojure源代码以获得大量示例。我也很惊讶/生气:),现在我只是没有意识到。我明白了。在我学习的过程中,我希望遵守惯例。Clojure开发人员是否像Java中那样普遍采用camelcase?我真的不是那个询问Java约定的人,希望有人会评论。。。这是非常好的使用-在名称,我只是不喜欢。我将把它从我的帖子中删除,这对我来说太固执己见了;-)哦,不!幸运的是,我想制作其他人使用的东西,正因为如此,惯例和个人美学才是最重要的important@dAni但是如果编译器将它们转换为u,那么我该怎么办?将文件命名为uu,将ns命名为-?是。查看Clojure源代码以获得大量示例。我也很惊讶/生气:),现在我只是不知道。嗨,克里斯,我想这是回答:嗨,克里斯,我想这是回答: