如果我們在一個集合上使用另一個方法在每個元素上執行的方法,我們可以使用&符號將它縮短。例如:如果我們有一個整數數組,我們要刪除的奇數我們可以這樣做:爲&符號賦予參數
[1,2,3,4,5,6,7,8].reject {|x| x.odd?}
使用符號,我們可以這樣寫:
[1,2,3,4,5,6,7,8].reject(&:odd?)
比方說,我們有一個字符串數組,我們想要刪除包含'a'
的元素。我們可以寫這樣的解決方案:
['abc','cba','cbc','cdc','dca','cad','dc','cc].reject {|x| x.include? 'a'}
此使用&語法(如果可能的話)我們如何寫?
雖然我已經看到了一些非常簡潔的黑客入侵這個概念,但這並不是完全可能的。[Like this SO Answer](http://stackoverflow.com/a/23711606/1978251)你在說什麼叫做'Symbol #to_proc'和搜索到'Symbol to_proc'的參數將提供一些見解,但是現成的答案是你不知道的。 – engineersmnky
[大討論](https://bugs.ruby-lang.org/issues/9076)關於ruby-lang.org中另一個類似的鏈接概念。雖然我不同意以ruby進一步污染&符號('&')的前提,但交談具有一些優點,並使得閱讀起來很刺激。我對任何這些概念的主要關注點是,你越是採用語法糖,代碼變得越不可讀,我最喜歡的關於ruby的部分之一是它強調了人類可讀的代碼。 – engineersmnky
您的「解決方案」無效。 – sawa