0

为什么会这样:

(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]))

我认为 [] 在要求中总是可以的。请熏陶。

4

2 回答 2

2

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

于 2013-04-19T21:25:49.310 回答
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 依赖项有关?

于 2013-04-19T21:01:08.653 回答