[英]Clojure list vs. vector vs. set
我是Clojure的新手。 如果這是一個愚蠢的問題,請道歉!
每次我不關心項目的順序時,我應該使用集合而不是向量或列表嗎? 在沒有必要訂購時,在這三者之間做出決定的共同標准是什么?
這實際上取決於你將如何使用這些物品。
在實踐中,我看到的大多數處理涉及將數據轉換為seq
並進行處理,因此列表和向量之間的區別通常是個人品味。
一般來說,當你的主要關注點是“這個群體中的這個東西嗎?”時,你需要一個集合。 除了不保留順序之外,集合也只保持給定值一次。 因此,如果您關心值的精確放置,矢量就更符合您的要求。 如果您主要關心會員資格的測試,則更合適。
是的,使用一套。 除非你有非常好的理由選擇其他東西(性能,內存使用......),否則這個集合是正確的選擇。
請記住,編程主要是與代碼的人類讀者進行通信,而不是與計算機進行通信。 通過使用集合,您可以完全清楚元素的順序是無關緊要的(並且您不期望重復的值),幫助讀者理解您的意圖和您自己的心理思維定勢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.