【问题标题】:A Clojure function that always returns nil一个始终返回 nil 的 Clojure 函数
【发布时间】:2016-08-16 22:36:50
【问题描述】:

Clojure 中是否有一个函数无论输入是什么都总是返回 nil?

我知道我可以写 (fn [_] nil) 但有内置函数吗?

【问题讨论】:

    标签: clojure


    【解决方案1】:

    您可以使用constantly 返回一个始终返回给定值的函数,例如

    (constantly nil)
    

    注意返回的函数接受任意数量的参数,而你的只允许一个。

    【讨论】:

    • 如果您出于某种原因不想经常使用,您可以通过键入以下内容来修改文字函数以接受任意数量的参数:(fn [& args] nil)
    • @AlanThompson 任何人都可以通过查看constantly 的来源来弄清楚这一点。但更重要的是,你为什么不想使用constantly
    【解决方案2】:

    constantly 是您要查找的函数:

    ((constantly nil) 2)
    => nil
    

    【讨论】:

    • 有什么原因你不能只使用 CONSTANT 'nil' 吗?为什么在你的书中调用函数是一件更好的事情?
    • @BruceDavidWilner 为什么你在这个答案而不是问题上发表评论?
    • @BruceDavidWilner 例如,您可能会发现自己期待一个匿名函数,该函数可能会或可能不会返回所需的值。在这种情况下,constantly 可以作为后备选项。它在测试中也被证明非常有用。
    • @BruceDavidWilner 这是一个example,是我最近编写的一段可以说是有用的代码,它使用了(constantly nil)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多