加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Clojure:以单一方式避免NPE的惯用/清洁方式

发布时间:2020-12-13 20:42:21 所属栏目:百科 来源:网络整理
导读:我有点懊恼,一些内置的Clojure函数在我看来是一种不一致的行为. 我正在尝试这样做: (let [kwns (namespace (keyword v))] ...) 在v可能为零的上下文中.关键字函数按照我的预期工作(返回nil),但命名空间会抛出NPE. 我认为monad并不常用于Clojure,因为nil-pun
我有点懊恼,一些内置的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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读