【发布时间】:2014-03-06 10:27:13
【问题描述】:
在 Phil Hagelberg 的 (technomancy) gripes file 中,他对 Clojure 进行了如下陈述:
nil 无处不在,导致难以找到源头的错误
现在 Phil 是一个聪明的人,他为 Clojure 社区做出了很多贡献,每个人都在使用他的东西——所以我认为这值得思考片刻。
管理函数的 nil args 的一种简单方法是抛出错误:
(defn myfunc [myarg1]
(when (nil? myarg1)
(throw (Exception. "nil arg for myfunc")))
(prn "done!"))
每个参数的这两行额外的样板文件臭气熏天。有没有一种通过元数据或宏删除它们的惯用方法?
我的问题是有没有一种快速的方法来检查 Clojure 函数中的 nil args?
【问题讨论】: