链接在这里:
https://bitbucket.org/qingant/clojure-struct
一个类似Python标准库里面的struct的小玩意儿,用来做二进制pack/unpack, 目前大体完成了pack的部分。用起来基本是这样:
user=> (load-file "struct.clj")
#'struct/bpack
;; pack 0xff000000 大字节序 到四字节int 然后是gbk编码的字符串"好" 补
足32个字节
user=> (def ar (struct/bpack '(i > s g 32) 0xff000000 "好"))
#'user/ar
;; 结果:
user=> (seq ar)
(0 0 0 -128 -70 -61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0)
;;同上,不过是本地字节序
user=> (def ar (struct/bpack '(i s g 32) 0xff000000 "好"))
#'user/ar
user=> (seq ar)
(-128 0 0 0 -70 -61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0)
;; 不对字符串进行补齐:
user=> (def ar (struct/bpack '(i s g ) 0xff000000 "好"))
#'user/ar
user=> (seq ar)
(-128 0 0 0 -70 -61)
user=>
做这个东东的主要目地是学习clojure.为啥学习clojure:
- 需要会一门jvm语言
- 会一点lisp,容易上手
- clojure有一些优秀特性,atom,agent之类,有严肃的并发支持