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討論這個原因。