在「綜合Ruby編程過程'電子書,我面臨的一章,其中作者(喬丹·哈金斯)描述了它喜歡:Regexp.last_match - 爲什麼它有用?
「我們要嘗試的事情就是返回所有的整數值從句子」
而且他確實是這樣的:
string = "The quick 12 brown foxes jumped over 10 lazy dogs"
p string.to_enum(:scan, /\d+/).map { Regexp.last_match }
,並返回:
=> [#<MatchData "3">, #<MatchData "34">, #<MatchData "23">]
我不知道爲什麼/時,這Regexp.last_match
可以使用或不如說 - 爲什麼這樣是不是更有效率比:
p string.to_enum(:scan, /\d+/).map { |i| p i }
此只輸出整數數組,似乎我作爲一個更有效的方法得到這些數字..
任何人也許能說明什麼可能是原因,筆者挑選Regesp.last_match
?
你什麼建議爲* *的方式更好。全局可變狀態很醜。使用全局可變狀態*和*依賴實現細節?呸。有可能你應該選擇一個不同的電子書。 – Ryan
謝謝你的迴應。接下來我要閱讀的內容是「Global mutable」:)如果它看起來太寬泛或無法回答,我會刪除這篇文章。關於那本書 - 其實很好,只是這部分有點奇怪...... –
@Ryan 1.那些返回_different_東西,2.'Regexp.last_match'是_not_全局可變的。 – mudasobwa