3
我想換成這樣的:通過向map
到陣列的first
方法的引用引用一個方法?
[[1,'a'],[2,'b'],[3,'c']].map {|p| p.first}
以更加簡潔的版本,但它給我的錯誤:
[[1,'a'],[2,'b'],[3,'c']].map Array.method(:first)
我想換成這樣的:通過向map
到陣列的first
方法的引用引用一個方法?
[[1,'a'],[2,'b'],[3,'c']].map {|p| p.first}
以更加簡潔的版本,但它給我的錯誤:
[[1,'a'],[2,'b'],[3,'c']].map Array.method(:first)
試試這個:
[[1,'a'],[2,'b'],[3,'c']].map(&:first)
謝謝,你能解釋一下這個語法嗎? – akonsu 2012-08-08 02:55:25
它被稱爲「椒鹽脆餅結腸」,是「Symbol#to_proc」的縮寫。 http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby – 2012-08-08 04:29:53