Clojure笔记
来源:互联网 发布:淘宝男装店名 编辑:程序博客网 时间:2024/05/17 01:05
1、在clojure中的函数命名规范,def functionName表示该函数是public的,例如: def -main[],调用该函数的时候,不需要加-,直接使用main即可。与此相对的是defn- functionName,这个表示该函数时私有函数,不可以在外部调用。
2、clojure中调用java方法:
首先使用(:import [packageName ClassName])导入该方法所在的java类
a、调用一个类的静态方法:(ClassName/staticFunctionName arg1 arg2 ...) 例如:
(Utils/newCuratorconf servers port root)
b、调用一个实例的方法(使用句点):(.functionName instanceName arg1 arg2 ...) ,例如:
(.serializeserializer tuple)这里调用了serializer的实例方法serialize,该方法接收一个tuple参数。
句点可以用来访问实例方法和访问字段。
3、clojure中创建一个java类的实例的方法
* 首先使用(:import [packageName ClassName])导入该java类,例如:
(:import[org.apache.storm.messaging TaskMessage])
* 然后使用 (instanceName (ClassName. arg1 agr2 ...)) ,后面的参数arg1、arg2等是这个类的构造函数的参数,例如:
(remote (TaskMessage.task tupleBytes))这里接受task与tupleBytes两个参数作为构造函数的参数创建了一个TaskMessage对象 并且赋值给了remote。
还有一种方式就是直接new的方式:例如(def rnd (new java.util.Random))这里就创建了一个Random的对象并且赋值给了rnd
4、clojure中声明一个java类类型的变量的方法:
*同样先要导入该类
*然后使用 ^ClassName varName 表示varName的类型是ClassName类类型的,例如:
(^ArrayList list)
5、此外,在一个clojure文件中访问另外一个.clj文件中的方法的方式,与访问java类的静态方法的方式一样,先导入该.clj,然后使用(FileName/functionName agr1 arg2 arg3 ...),例如:
(adder/add 3 4) 这里调用了add.clj中定义的add方法 该方法接收两个参数3 和4 。
6、在clojure中 reify是一个关键字,它用于实现接口或者协议的匿名对象,eg:
(reify Person (........))
阅读全文
1 0
- clojure笔记
- Clojure笔记
- Clojure STM 笔记-上篇
- Clojure STM 笔记-中篇
- Clojure STM 笔记-下篇
- 学习笔记之Clojure
- clojure学习笔记(更新中)
- Clojure笔记——apply
- The Joy of Clojure 笔记
- Clojure数据分析秘笈 笔记
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure学习笔记——探索Clojure
- Programming Clojure笔记之二——探索Clojure
- clojure
- storm基本使用和拓扑流程
- 算法第三周Median of Two Sorted Arrays[hard]
- windows下pip安装库遇到了Microsoft Visual C++ 9.0 is required的问题
- Java PC
- AngularJS操作DOM——angular.element
- Clojure笔记
- MySQL day5---运算符和函数
- 数据结构——数组、矩阵与广义表
- 06-CentOS 7.2在虚拟机中连接Wi-Fi
- stm32 ---jlink的烧录
- ZigBee无线通信--BasicRF无线点对点通信
- 工厂模式(简单工厂,工厂方法,抽象工厂)
- NuGet学习笔记001---了解使用NuGet给net快速获取引用
- ipv4之ip地址的分类