Clojure 导入包

来源:互联网 发布:抢小米神器软件 编辑:程序博客网 时间:2024/06/12 13:53

最近迷上了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学习还任重道远!

原创粉丝点击