首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure命名空间-转换为_

Clojure命名空间-转换为_
EN

Stack Overflow用户
提问于 2012-06-26 10:03:57
回答 2查看 124关注 0票数 2

显示在Noir错误页面上的错误:java.io.FileNotFoundException: Could not locate boundaries/lat_long__init.class or boundaries/lat_long.clj on class path

需要它的代码:

代码语言:javascript
复制
(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?boundaries/lat-long.clj以及相应的boundaries.lat-long名称空间都存在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-26 10:06:53

JVM不允许在类名中使用-,因此Clojure编译器将它们转换为_的。

问题很可能出在project.clj依赖项上。

诊断此类问题时:

  • 是project?
  • re-run lein deps

中提供的命名空间?

  • .class文件是否出现在REPL的lib目录中
票数 4
EN

Stack Overflow用户

发布于 2012-06-26 10:43:38

您需要将边界/lat-lat.clj重命名为边界/lat_lat.clj。

请注意,您不必更改名称空间名称。clojure约定对函数和名称空间名称使用"-“。

来自https://stackoverflow.com/a/4451693/151650的Stuart Sierra response说:“这是Java互操作性的一个必要的变通方法。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11199873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档