前言:
目前朋友们对“java命名空间”大致比较着重,姐妹们都想要学习一些“java命名空间”的相关内容。那么小编同时在网摘上汇集了一些对于“java命名空间””的相关文章,希望咱们能喜欢,咱们快快来学习一下吧!命名空间
根绑定存在于命名空间中。
提示符user=>说明当前正工作在user命名空间下。user为一个用于探索性开发的临时命名空间。
当Clojure解析名称foo时,它会用当前命名空间user对foo进行命名空间限定(namespace-qualifies)。
resolve会返回在当前命名空间中,解析符号得到的变量或是类。
使用in-ns来切换命名空间,必要时Clojure还会新建一个新的。
创建一个myapp命名空间。
现在已经位于myapp命名空间中了,这时候def或defn的任何东西都将属于myapp。当使用in-ns新建了一个命名空间时,Clojure会自行导入java.lang包。
每当转移到一个新的命名空间时,都应该立即使用use来导入clojure.core命名空间,这样Clojure的核心函数才能在这个新的命名空间中使用。
默认情况下,java.lang以外的其他类都必须使用全限定名。
相反,必须指定全限定的 java.io.File。
倘若不想使用全限定类名,可以使用import把一个或者多个类名从Java包映射到当前命名空间中。
一旦导入了一个类,就可以使用其短名称了。
import仅用于Java类。
使用另一个命名空间中的Clojure变量,同样也需要采用其全限定名,或者将其名称映射到当前空间中。
为了在当前命名空间中引入split别名,可以包含对split的命名空间clojure.string调用require,并用str用作其别名。
require会把clojure.string中所有的公共变量引入到当前命名空间内,并且还可以通过别名str来访问它们。
不过,这可能会令人感到有些困惑,因为引入了哪些名称其实并不明确。
作为惯例,在一个Clojure源文件的顶部,使用ns宏来import Java类和require命名空间。
ns宏将当前命名空间(可通过*ns*获取)设置为name,必要时还会创建这个命名空间。references部分则可以包含:import、:require和:use。它们的工作方式与各自对应的同名函数类似。这样仅需要一个形式,就可以完成命名空间映射相关的所有设置。
切换到user命名空间并查询相关文档