- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 Clojure 中的协议(protocol),并且在以下代码中遇到了此错误:
CompilerException java.lang.IllegalArgumentException:没有找到接口(interface):gangnam.core.Legi 的单一方法:valores_BANG_ 函数:valores!协议(protocol):Legi,编译:(NO_SOURCE_PATH:1:1)
一切都运行得很好,直到我尝试向协议(protocol)添加七个以上的方法(下面的valores!
)。因此,我将 valores
复制到 valores!
中,以确保我使用的是相同的代码,除了末尾的 !
之外,而且它并没有不工作。我还尝试将其换成不同的名称 (dele
)。
然后我记得我最近运行了lein install
,当我再次运行lein install
时,似乎解决了问题。知道为什么会发生这种情况吗?
(defprotocol Legi
(lege [self] [self key])
(carpe! [self] [self key] [self key val])
(muta!* [self key val])
(juga! [from label to])
(claves [self])
(valores [self])
(valores! [self]))
(extend-protocol Legi
Iterable
(lege
([self]
(for [elm self]
(lege elm)))
([self key]
(for [elm self]
(lege elm key))))
(carpe!
([self]
(for [elm self]
(carpe! elm)))
([self key]
(for [elm self]
(carpe! elm key)))
([self key val]
(for [elm self]
(carpe! elm key val))))
(muta!*
[self key val]
(doall (for [elm self]
(muta!* elm key val))))
(juga! [from label to]
(for [elm from]
(juga! elm label to)))
(claves [self]
(for [elm self]
(claves elm)))
(valores [self]
(for [elm self]
(valores elm)))
(valores! [self]
(for [elm self]
(valores elm)))
Element
(lege
([self]
(into {} (for [k (.getPropertyKeys self)]
[(keyword k) (lege self k)])))
([self key]
(-> self (.getProperty (name key)))))
(carpe!
([self]
(for [k (.getPropertyKeys self)]
(carpe! self k)))
([self key]
(let [prop (lege self key)]
(res
(-> self (.removeProperty (name key))))
prop))
([self key val]
(let [prop (lege self key)]
(if (= val prop)
(carpe! self key)))))
(muta!* [self key val]
(res
(let [key (name key)]
(.setProperty self key val)
self)))
(juga! [from label to]
(when (and from to)
(res
(.addEdge *g*
nil from to (name label)))))
(claves [self]
(-> self .getPropertyKeys))
(valores [self]
(-> self lege vals))
(valores! [self]
(-> self lege vals)))
最佳答案
lein clean
应该可以为您解决这个问题。
关于clojure - defprotocol "no single method"错误似乎是 Leiningen 中的一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19434311/
我正在尝试使用 midje 框架在 leiningen 的 compojure 模板 (lein new compojure financeiro) 中运行测试并收到警告: lein midje WA
我正在尝试使用 midje 框架在 leiningen 的 compojure 模板 (lein new compojure financeiro) 中运行测试并收到警告: lein midje WA
当我使用 lein run 启动 web 应用程序时或 lein ring server ,我得到两个进程:Leiningen 本身和我的应用程序。当我使用 Ctrl+C 终止 session 时,它
我正在开发一个 clojure Web 应用程序,使用 leiningen 2 进行构建和部署。这是一个非常普通的网络应用程序,我正在使用 compojure、ring 和 lein-beanstal
(leiningen v 2.5.1) Leiningen compile 似乎什么也没做,即使是在一个新项目中。我的步骤是 lein new default foo cd foo lein comp
我最近开始使用 clojure,我正在使用 leiningen 创建一个小项目。我在让 leiningen 使用命令行参数时遇到了麻烦。以下是我的src/project/core.clj (ns pr
我使用 lein2 已经有一段时间了,它运行良好。但是今天麻烦开始了,无论我用 lein2 输入哪个命令,它都会给我以下错误。我尝试删除 ~/.m2,在这种情况下,它会再次下载 deps,但最后还是出
我在一个非常严格的环境中工作,我无法执行任何curl或wget脚本,例如lein.sh/.bat,也无法“git”代码。我有 leiningen-x.x.x-standalone.jar,它不构成完整
我使用 lein2 已经有一段时间了,它运行良好。但是今天麻烦开始了,无论我用 lein2 输入哪个命令,它都会给我以下错误。我尝试删除 ~/.m2,在这种情况下,它会再次下载 deps,但最后还是出
Leiningen (https://github.com/technomancy/leiningen) 研究一些默认存储库以满足您的project.clj 中指定的依赖项。 我想浏览这些存储库,看看
按照惯例,Leiningen 项目中伴随测试的数据通常存储在哪里? 一些可能性包括: /test//data/ , /test// , 或者 /test/data/ . 请列出您的论点背后的信息来源或
我正在尝试使用 Windows CMD 运行以下 .bat 文件: lein run cd.. 第一行工作得很好,clojure 程序完成了它的工作: (spit some-file some-stu
我在 Windows 上运行 Leiningen 时遇到问题(在 Cygwin 和 CMD 中)。 最初我生成项目时: $ lein new app leintest Generating a pro
对于这个问题,我很抱歉,我是 Clojure 的新手。我关注了this blog如何为 Eclipse 安装 Leiningen 插件并发现该插件的链接 ( http://ccw.cgrand.net
有没有我可以一次性下载 leiningen 和所有相关内容的完整下载?我无法更改本地网络上的代理设置,这是我收到的错误: 带有“2”个参数的“DownloadFile”:“远程服务器返回错误:(407
我正在尝试与 leiningen 创建一个新项目,但我不断收到消息: "不推荐包含大写字母的项目名称 并且会被 Clojars 和 Central 等存储库拒绝。 如果您确实无法使用小写名称,请设置
我正在运行 Debian Wheezy、openjdk-7-jre、clojure 1.4.0 和 leiningen-1.7.1,它们都是从官方仓库安装的。 所以我跑了 lein new hello
我正在尝试使用 Checkout Dependencies Leiningen 中的功能用于使用 Flambo checkout 的项目.我的 project.clj 看起来像这样: (defproj
我们正在开发一个具有 Clojure-Java 互操作性的项目。在这一点上,我们有一个具有各种依赖项的类,我们将其放入 Eclipse 中的用户库中以进行开发,但这在使用 Leiningen (2.x
在一个 clojurescript 项目中,我希望 leiningen 在我们的 CI 构建期间减少对互联网连接的依赖。我希望让它缓存网络磁盘上的包(使用 :local-repo 设置创建“共享缓存”
我是一名优秀的程序员,十分优秀!