2010-04-22 9 views

Répondre

7

Il existe une simplification qui fonctionne dans quelques situations.

Si vous avez quelque chose comme:

(1..10).collect { |i| i.to_s } 

Vous pouvez simplifier à:

(1..10).collect(&:to_s) 

Le & convertit le symbole à un proc en appelant Symbol#to_proc. Cela ne fonctionne pas avec des arguments supplémentaires, et cela ne fonctionne que si vous voulez appeler une méthode directement sur l'argument du bloc. Il était introduced dans Rails (ActiveSupport), mais a fait son chemin dans le noyau Ruby 1.8.7 et 1.9.