2009-09-10 6 views
0

En Ruby je peux utiliserAi-je besoin de mettre entre parenthèses le rendement en Ruby?

result << (yield element) 

et tout fonctionne, mais si je fais

result.push(yield element) 

Je vois un avertissement sur parenthèses besoin pour la compatibilité future. Je peux changer ce qui précède pour

result.push(yield(element)) 

et l'interprète est heureux à nouveau, mais je ne comprends pas pourquoi j'ai besoin entre parenthèses dans un appel à céder et pas l'autre?

+1

Le deuxième exemple a un appel de fonction imbriqué. Ruby ne se plaindra pas des appels non imbriqués (c'est-à-dire 'puts" bonjour "' est bon) Ce n'est pas spécifique à 'yield ' – a2800276

Répondre

3

Vous pouvez ignorer cet avertissement. Vous ne l'obtiendrez plus en 1.8.7 et plus tard. Les changements d'analyseur prévus qui ont été la raison de cet avertissement ont été rejetés.

Questions connexes