回答
使用include?
並添加一個「不」來開頭:
![1, nil, 2, 'a'].include?(nil)
如果所有元素都是非空,則數組不包括nil
。使用.all?
意味着你必須要掃描整個陣列,.include?
應該爲它找到一個匹配,而且也沒有調用塊的開銷,就立即停止;所以,.include?
應該更快,但性能差異可能是相當無關的,除非你有一個龐大的數組。我會選擇最適合你的。
這可能會比我的答案快一點。 – 2011-04-01 23:50:32
簡短而詳細。你贏得了一個獨角獸。 – 2011-04-01 23:56:53
@Douglas:性能差異幾乎肯定會變得無關緊要。我真的很喜歡sarnold,只要清楚,使用'none?'完全符合意圖,清晰度通常是我的第一選擇。 – 2011-04-02 00:03:06
你打高爾夫?
因爲你會得到什麼這是我們所短而直。個人而言,我寧願一個稍微詳細方式:
[...].all? {|x| !x.nil? }
我想你可以做:
!list.any?(&:nil?)
但我覺得這比你原來的代碼更直接。更少的字符,但是,如果你不喜歡塊,這就隱藏了&中的塊:符號
[那麼,你原來的代碼有一個問題,那就是{| x | x}對於nil和false值均爲false。如果你真的想要塊{| x | !x.nil}]
幾乎同樣萬畝太短了,我不認爲我的任何比它好,只是另一種變體一樣:
![1, nil, 2, 'a'].index(nil)
- 1. 檢查所有元素是否都是唯一且不可用的列表
- 2. 什麼是設計路線的最佳途徑?有多條路線是否好?
- 3. Google Map從2點返回路徑的算法是否是最短路徑?
- 4. 檢查數組中的所有元素是否都是相同的值
- 5. 檢查是否所有元素都被徘徊過
- 6. 最短路徑查詢返回許多路徑而不是一條路徑
- 7. 如何檢查數組中的所有元素是否都是正整數?
- 8. 用opencv和C++繪製點的最短路徑是什麼?
- 9. Java AWT HelloWorld示例的最短路徑是什麼?
- 10. 最短路徑不是圖中的路徑
- 11. 定期檢查,看看是否所有線程都完成
- 12. 檢查矩陣元素是否都是不相等或不同元素
- 13. 錯誤不是所有的代碼路徑都返回一個值。爲什麼?
- 14. 有沒有算法來計算最短的樹(不是路徑)?
- 15. 什麼是圖中的最小路徑?
- 16. 蟒蛇減少,以檢查是否所有元素都是平等
- 17. 不是所有的代碼路徑都有返回值
- 18. 檢查元素是否是選中的最後一個元素
- 19. 決定從s到t的所有最短路徑是否包含邊e
- 20. XmlReader認爲所有元素都是EndElements
- 21. 總是有一些MST是最短路徑樹嗎?
- 22. URI的任何路徑段是否都有查詢組件?
- 23. 爲什麼FCN32輸出是黑色圖像(所有像素都有零值)?
- 24. 所有東西都是最新的(一切都不是)
- 25. 是否所有SocketExceptions都是「致命的」?
- 26. A *總是提供最短路徑嗎?
- 27. jquery檢查元素是否有元素
- 28. 爲什麼我所有的「商店」列表元素都不是正確的?
- 29. 檢查Scala集中所有'Seq'元素的大小是否爲1的最快方法是什麼?
- 30. 「不是所有的代碼路徑都返回一個值」
哇,我會說這是相當直接! – steinar 2011-04-01 23:48:43
簡短而高效,即使它不是非常詳細。不會做得比這更好。 – 2011-04-01 23:48:58
你的'全部? {| X | x}用'[1,false,'fish',:bicycle]做的方法''? – 2011-04-02 00:45:46