7
A
回答
11
grep
定義在Enumerable
上,即它是一種對Hash
es沒有任何瞭解的通用方法。它適用於Enumerable
的任何元素。 Ruby沒有鍵值對的類型,它只是將Hash
條目表示爲兩元素數組,其中第一個元素是鍵,第二個元素是該值。
grep
使用===
方法過濾元素。而且,由於沒有
/a/ === ['a', 'b']
也不
/b/ === ['a', 'b']
是真實的,你總是得到一個空數組作爲響應。
試試這個:
def (t = Object.new).===(other)
true
end
{'a' => 'b'}.grep t
# => [['a', 'b']]
在這裏你可以看到grep
作品與Hash
ES。
相關問題
- 1. 「T:new()」對泛型有什麼意義?
- 2. 使用.class對象有什麼意義?
- 3. MarshalByValue對象有什麼意義?
- 4. AdCreative對象的image_url有什麼意義?
- 5. 這對Coffeescript有什麼意義?
- 6. Redis HMSET文檔:'hash'是什麼意思?
- 7. Draggable div - 有什麼意義?
- 8. HTML DTD - 有什麼意義?
- 9. 爲什麼const有意義?
- 10. ASyncToken有什麼意義?
- 11. XNA:Unload()有什麼意義?
- 12. DocumentDB:「Upsert」有什麼意義?
- 13. 接口有什麼意義?
- 14. XPS有什麼意義?
- 15. FILL_AND_STROKE有什麼意義?
- 16. Html.DisplayTextFor()有什麼意義?
- 17. setArguments有什麼意義?
- 18. DOCTYPE有什麼意義?
- 19. OpenClipboard API有什麼意義?
- 20. document.defaultView有什麼意義?
- 21. tornado.locale.Locale.translate有什麼意義?
- 22. NSRange.toRange()有什麼意義?
- 23. aclocal有什麼意義?
- 24. Convert.ToDateTime(bool)有什麼意義?
- 25. setRetainsRegisteredObjects有什麼意義?
- 26. 或門有什麼意義?
- 27. 豆有什麼意義?
- 28. 有什麼意義 「[=]」 以CPP
- 29. 什麼@ {hash {$ key}}在Perl中的含義?
- 30. 在Perl中,if(%hash)和if(定義的%hash)之間有什麼區別?
謝謝,我看到===是爲Object定義的,但沒有爲Hash重寫,所以它沒有意義。但至少我現在看到:{'a'=>'b'}。grep Array ... => [[「a」,「b」]] – user258980 2010-09-16 05:33:35
@ user258980:事實上,'Hash#=== '沒有被定義是完全不相關的,因爲你沒有調用'Hash#===',你正在調用'Hash#grep'。然後'Hash#grep'調用傳遞給它的任何對象的'==='方法。在你的例子中,該對象是'/ a /',所以'Hash#grep'最終調用'Regexp#==='依次傳遞每個元素。由於這些元素是兩元素數組,並且'Regexp'顯然永遠不能匹配數組,只有字符串,結果將始終爲空。 – 2010-09-16 11:39:40
謝謝澄清。 – user258980 2010-09-16 18:37:16