我有点懊恼,一些内置的Clojure函数在我看来是一种不一致的行为.
我正在尝试这样做:
(let [kwns (namespace (keyword v))] ...)
在v可能为零的上下文中.关键字函数按照我的预期工作(返回nil),但命名空间会抛出NPE.
我认为monad并不常用于Clojure,因为nil-punning似乎是惯用的形式(因为this article的篇幅很长).
我预计kwns会出现零,而不是抛出NPE.当这种不一致引起丑陋的头脑时,保持代码清洁的推荐方法是什么……当然,对我的代码进行无效检查并不是我想要的答案.
一些 – >为你工作?
user=> (doc some->) ------------------------- clojure.core/some-> ([expr & forms]) Macro When expr is not nil,threads it into the first form (via ->),and when that result is not nil,through the next etc nil user=> (some-> nil keyword namespace) nil user=> (some-> "user/a" keyword namespace) "user"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。