我使用紅寶石1.8.7和紅寶石的軌道3.x。我有很多行這樣Inplace enumeration
lines = lines.map {|e| e.strip}
lines = lines.map {|e| e.upcase}
lines = lines.map {|e| sanitize_element(e)}
而不是每次分配新值線有沒有更好的方式來處理這個問題。我知道我可以做
lines = lines.map {|e| sanitize_element(e.strip.upcase) }
但這不是這個問題的主要觀點。最主要的是要找到一種方法來處理上述情況,而不是每次都對行賦值。
基本上我正在尋找一個像這樣優雅的解決方案,但我知道Enumerable中沒有map!
。
lines.map! {|e| e.strip}
只要確保我不錯過一個紅寶石功能。
地圖!未在http://www.ruby-doc.org/core/classes/Enumerable.html#M001491列出。讓我試試看。 – 2011-03-10 19:13:12
是的,它實際上是在'Array'上。 http://www.ruby-doc.org/core/classes/Array.html#M000250;我認爲這樣做的原因是'Enumerable'只指定了不變的做事方式。 – 2011-03-10 19:14:33
很酷。非常感謝。 – 2011-03-10 19:18:34