#map(&:method)是怎麼一回事?

李威辰
1 min readMar 1, 2018

--

在Ruby的程式碼裡面我們常常會看到一種令人蠻困惑的寫法,像是[1,2,3].map(&:to_s)這種東西。第一次見到頭上會馬上冒出三條線,這到底是什麼語法?看一些程式碼我們會比較清楚:

在上面的程式碼我們可以看到map(&:to_s)其實是map { |num| num.to_s }的簡易寫法。只要方法caller的每個元素都有相對應的方法,我們都可以利用這個寫法來少打一些字,以下程式碼是一些例子:

我們上面有提到,要用這個寫法,必須每個元素都有相對應的方法,否則便會像line 4一樣出現錯誤。

--

--