<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerVersion>${java.version}</compilerVersion>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
宏中use
和:use
之间的区别是什么?
Docs说以下内容:
ns
答案 0 :(得分:1)
这有点令人困惑。
在ns
表单中,您希望使用关键字版本(:require ...)
,如:
(ns clj.core
(:require [tupelo.core :as t] ))
您应该将此视为&#34; normal&#34;做事的方式。
另一个没有冒号的版本是一个同名的 功能 ,可以在REPL中调用,以防您不能或不# 39;我想使用ns
表格。这看起来像是:
> lein repl
user=> (require '[tupelo.core :as t] )
nil
user=> (t/append [1 2 3] 4)
[1 2 3 4]
请注意: 对于repl / function版本,您还必须引用包含命名空间规范的向量。请注意,我们未使用ns
引用:require
版本中的规范。
作为替代方案,如果您已经在编辑器中并且只想在REPL上快速测试某些内容,则可以将整个ns
表单从文件顶部剪切/粘贴到REPL中:
> lein repl
user=> (ns clj.core
#_=> (:require [tupelo.core :as t] ))
user=>
比手动输入函数版本更容易且更不容易出错。
有关概述,请参阅最近发布的博客:https://stuartsierra.com/2016/clojure-how-to-ns.html