当前位置:  开发笔记 > 编程语言 > 正文

从Clojure调用Java

如何解决《从Clojure调用Java》经验,为你挑选了1个好方法。

当我尝试在Clojure中运行以下代码(来自REPL)时:

(dotimes [i 5]
  (.start
   (Thread.
    (fn []
      (Thread/sleep (rand 1000))
      (println (format "Finished %d on %s" i (Thread/currentThread)))))))

我收到以下错误:

java.lang.Exception: Unable to resolve symbol: i in this context
clojure.lang.Compiler$CompilerException: NO_SOURCE_FILE:6: Unable to resolve symbol: i in this context
        at clojure.lang.Compiler.analyze(Compiler.java:3713)

我在这做错了什么?



1> Brian Carper..:

您的代码适用于我使用最新的SVN(1144).

user> (dotimes [i 5] (.start (Thread. (fn [] (Thread/sleep (rand 1000)) (println (format "Finished %d on %s" i (Thread/currentThread)))))))

Finished 0 on Thread[Thread-16,5,main]
Finished 4 on Thread[Thread-20,5,main]
Finished 3 on Thread[Thread-19,5,main]
Finished 1 on Thread[Thread-17,5,main]
Finished 2 on Thread[Thread-18,5,main]

您使用的是9月16日的版本吗?你几乎必须使用SVO版本的Clojure.它变化太快了.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有