Récemment, j'avais une discussion avec un ami à propos de Proc
de Ruby. Vous pouvez appeler un Proc
de plusieurs façons. Une façon est d'invoquer Proc.call
:Y at-il des problèmes de priorité Ruby avec l'utilisation Proc.call vs Proc. []?
p = Proc.new { |x| "hello, #{x}" }
p.call "Bob"
=> "hello, Bob"
Une autre est d'utiliser des accolades, Proc.[]
:
p ["Bob"]
=> "hello, Bob"
Y at-il ici des problèmes de priorité potentiels, ou sont ces deux déclarations complètement interchangeables? Si non, pouvez-vous donner un exemple d'un contexte où différents résultats seraient fournis?
Hmm ... ce n'est pas tout à fait ce que je cherche. Cela montre une différence entre '.call (x) .call' et' .call x.call', pas '.call' et' [] '. –
@ John Feminella, essayez 'p [" John "] [" Barry "]' pour voir la différence. Peut-être Aidan voudra-t-il ajouter cela à sa réponse. –
@Wayne Conrad - Merci - J'ai incorporé un nouvel exemple basé sur cela. –