- >运算符在遇到nil/false返回时中断评估

mur*_*a52 7 clojure

我想通过一系列函数来处理输入,就像 - >运算符一样.但是,如果任何函数返回nil/false,那么我想打破评估并返回错误消息.我该怎么做,是否有一些提供此功能的运算符/宏?

Ale*_*yev 11

试试这个:-?> 来自文档:

(-?> "foo" .toUpperCase (.substring 1)) returns "OO"
(-?> nil .toUpperCase (.substring 1)) returns nil
Run Code Online (Sandbox Code Playgroud)

如果你将使用->宏作为第二个例子,你肯定会得到NullPointerException.

  • 为了完整起见,让我们提一下它位于主要的Clojure jar中的`clojure.core.incubator`命名空间中. (4认同)