gpt4 book ai didi

clojure - 为什么 `(count nil)`返回0?

转载 作者:行者123 更新时间:2023-12-02 11:23:01 27 4
gpt4 key购买 nike

在 Clojure 中,我发现这一点令人惊讶:

> (count nil)
0

我预计会出现类型错误,如本例所示:

> (count 77)
java.lang.UnsupportedOperationException: count not supported on this type: Long

因为 nil 不是列表:

> (list? nil)
false

nil 是否具有作为空序列的特殊状态?

最佳答案

来自官方documentation :

计数:

Returns the number of items in the collection. (count nil) returns 0. Also works on strings, arrays, and Java Collections and Maps

这就是规范;)

我想它可以确保任何具有“可数”类型的变异值都可以在运行时处理。
实际上,任何引用允许的类型(字符串、数组以及 Java 集合和映射)的引用都可能在某些时候以 nil 为目标。

关于clojure - 为什么 `(count nil)`返回0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28934385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com