最近迷上了markdown编辑,总是迫不及待想要拿来记录点什么。看Storm源码总是看到包和方法的引用,一而再再而三的没有记住,索性就抄文一篇以加深记忆,只是原文没有什么排版可言。本人只是用markdown重做排版,并未有任何干货可言。
首先奉上原文链接
require
require只负责引入clojure库,不绑定函数到当前的 ns 中。
;;引入 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]))
use
引入并绑定,相当于 require + refer。
;;引入并绑定 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 库。
;;引入 Calender
(import [java.util Calender])
;;使用
(Calender/getInstance)
;;在 ns 中的写法
(ns test
(:import [java.util Calender]))
- use 在函数名称没有冲突,而且函数很常用的情况下使用比较合适。
- require 对于怕有名称冲突的情况下使用比较合适;
- import 就是用来引入java库的
最后唠叨一句:Storm学习还任重道远!