javascript - ClojureScript core.match 中匹配 false (== undefined, null)

标签 javascript clojure pattern-matching clojurescript core.match

我正在尝试匹配 map 键的 false 值,这在 javascript 中实际上也意味着 undefinednull 等...在我看来 core.match 与值完全匹配。有什么办法可以做到这一点吗?

另一种方法是匹配“not true”,但文档也没有给我任何提示如何做到这一点。

最佳答案

您可以使用:或模式:

(match [x]
  [(:or false nil)] true
  [_] false)

如果xfalsenil,则返回true,否则返回false

或者,您可以使用 :guard 模式:

(match [x]
  [(_ :when not)] true
  [_] false)

:when 模式也可以工作(使用 (defpred not)),但在这种情况下,它们可能很难正确使用,并且不会给守卫带来任何好处。

关于javascript - ClojureScript core.match 中匹配 false (== undefined, null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658539/

相关文章:

javascript - Karma runner 不会运行所有文件

Clojure 模块依赖项

clojure - 按正确顺序放置 Clojure Ring 中间件

javascript - promise 链扩展

javascript - 如何禁用鼠标中键拖动选择?

JavaScript 对象与数组

clojure - 如何转发可选参数

scala - 如何模式匹配大型 Scala 案例类?

Scala:如何在没有匹配关键字的情况下使用 case 关键字?

sql - 获取 '/' 字符后的字符串