2012-08-08 41 views
3

我想換成這樣的:通過向map到陣列的first方法的引用引用一個方法?

[[1,'a'],[2,'b'],[3,'c']].map {|p| p.first} 

以更加簡潔的版本,但它給我的錯誤:

[[1,'a'],[2,'b'],[3,'c']].map Array.method(:first) 

回答

3

試試這個:

[[1,'a'],[2,'b'],[3,'c']].map(&:first) 
+0

謝謝,你能解釋一下這個語法嗎? – akonsu 2012-08-08 02:55:25

+1

它被稱爲「椒鹽脆餅結腸」,是「Symbol#to_proc」的縮寫。 http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby – 2012-08-08 04:29:53

相關問題