5
我是Clojure的新手。的keys行为在我看来是不一致的:为什么(键“”)在Clojure中返回零,而(键“abc”)是错误?
user=> (keys "")
nil
user=> (keys "abc")
ClassCastException
空集出现特殊对待,并且test cases表明这是故意的。这种行为背后的想法是什么?
我是Clojure的新手。的keys行为在我看来是不一致的:为什么(键“”)在Clojure中返回零,而(键“abc”)是错误?
user=> (keys "")
nil
user=> (keys "abc")
ClassCastException
空集出现特殊对待,并且test cases表明这是故意的。这种行为背后的想法是什么?
原因是当使用seq
函数将集合转换为序列时,如果集合为空,则seq
将返回nil而不是空序列。还有另外一个thread讨论这个原因。