关于clojure的ns中的require,use,import等
来源:互联网 发布:手机变麦克风软件 编辑:程序博客网 时间:2024/05/15 01:50
关于require
require只负责引入clojure库,不绑定函数到当前的ns中。
Clojure代码
;;引入java io,并指定缩略名为io
(require ‘[clojure.java.io :as io])
;;使用
(io/file “Filename”)
;;在ns中使用
(ns test
(:require [clojure.java.io :as io]))
关于refer
将函数绑定到当前的ns中。例如
Clojure代码
;;把trim和capitalize绑定到当前的ns中,可以直接调用这两个方法
(refer ‘clojure.string :only ‘[capitalize trim])
;;在ns中的写法
(ns test
(:refer clojure.string :only [capitalize trim]))
关于refer-clojure
从源码可以看出,就是调用了refer
Clojure代码
(defmacro refer-clojure
“Same as (refer ‘clojure.core )”
{:added “1.0”}
[& filters]
`(clojure.core/refer ‘~’clojure.core ~@filters))
关于use
引入并绑定,相当于require+refer。
Clojure代码
;;引入并绑定split方法,之后就可以直接使用了
(use ‘[clojure.string :only (split)])
;;直接在当前ns中使用split
(split “hello,world” #”,”)
;;在ns中的写法
(ns test
(:use [clojure.string :only (split)]))
关于import
和require相似,不过import负责引入java库,require负责引入clojure库。
Clojure代码
;;引入Clendar
(import [java.util Calendar])
;;使用
(Calendar/getInstance)
;;在ns中的写法
(ns test
(:import [java.util Calendar]))
use在函数名称没有冲突,而且函数很常用的情况下使用比较合适。
require对于怕有名称冲突的情况下使用比较合适。
import就是用来引入java库的。
关于gen-class的片面
除了以上这些函数,ns中的gen-class也常用到,其功能就是将clojure代码编译成java class。
比如要将clojure代码打包成可执行jar包,那么指定main class就可以用上。(gen-class还有很多功能,这只是最常用的一个)
Clojure代码
(ns test
(:gen-class))
(defn -main [] (println “Hello, World!”))
;;编译之后,在shell中执行,打印hello, world!
java test
- 关于clojure的ns中的require,use,import等
- Clojure命名空间中use与require的区别
- quick源文件中关于import和require的区别
- Clojure ns 宏介绍
- require和import的区别
- require和import的区别
- perl的use和require
- require和use 的区别
- perl的USE和require
- JS 中的require 和 import 区别
- javascript 中的require /exports 和import/export
- 【Cocos-Quick】quick源文件中关于lua的import和require的区别
- webpack中require和import的区别
- js import和require用法的区别
- webpack中require和import的区别
- webpack中require和import的区别
- require/exports和import/export的区别
- 关于Clojure的简单介绍
- CSS笔记
- 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位-ICCV 2013
- spring boot 定时任务
- IDEA 常用快捷键(用关键字ctrl+F 搜一下搜一下)
- Codeforces 723C.Polycarp at the Radio
- 关于clojure的ns中的require,use,import等
- 深度学习(十八)基于R-CNN的物体检测-CVPR 2014
- hdu1242 Rescue bfs搜索
- Mac80211数据帧
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
- easyUI记录
- iOS CollectionView制作立体广告栏
- 企业电子邮件系统全局地址簿管理及使用方法介绍
- MyBatis传入多个参数的问题 - mingyue1818