Clojure:要求png-extract不能和[]一起使用?

时间:2013-04-19 20:45:41

标签: clojure require

为什么这样做:

(ns image-test.core 
    (:gen-class) 
    (:require (png-extract) 
              [clojure.string :as string])) 

但这失败了:

(ns image-test.core 
     (:gen-class) 
     (:require [png-extract :as png] 
               [clojure.string :as string]))

我认为[]总是要求。请启发。

2 个答案:

答案 0 :(得分:2)

(:require (png-extract))是无操作,“无所事事”是“成功”。在这里使用parens意味着你要开始一个前缀列表,比如(:require (clojure set string))需要clojure.setclojure.string;因为你没有在png-extract之后放置任何名称空间,所以它根本不需要任何东西。使用[]是正确的,但它失败了,因为png-extract命名空间有问题:可能它不存在,或者以某种方式被破坏。

答案 1 :(得分:1)

以下是使用两种形式的示例:

image-test.core> (ns image-test.core
                  (:gen-class)
                  (require [clojure.string :as foo ] 
                           [clojure.string :as string]))
nil
image-test.core> (ns image-test.core
                  (:gen-class)
                  (require (clojure.string)
                           [clojure.string :as string]))

也许是png-extract依赖的东西?