Considérez le code suivant:
x = 4 y = 5 z = (y + x) puts z
3 Réponses :
(Disclaimer: Je ne suis pas un programmeur de rubis. Ceci est juste une supposition sauvage.)
avec des parens, vous obtenez qui évalue à la valeur de la dernière instruction exécutée. p> p> z code> étant attribué la valeur de p> < Pré> xxx pré>
+1. J'essayais d'expliquer le concept de base de commandes inachevées lorsque je me suis rendu compte que la production était de 4, pas 9. bonne allant :)
Cela fait beaucoup de sens. J'en venais du même exemple à Scala où il le traite comme z = (Y + X) et sorties 9. Bonne explication :-)
Les parenthèses multilignes sont essentiellement un bloc et la valeur du bloc est la dernière déclaration dedans.
finissez la ligne avec \ afin de continuer l'expression sur la ligne suivante. Cela donne la sortie appropriée: sorties 9 p> Je ne sais pas pourquoi le résultat est inattendu sans échapper à la nouvelle ligne. Je viens d'apprendre de ne jamais faire ça. P> p>
Eh bien, vous n'aurez pas besoin du caractère d'échappement \ code> si vos lignes finissent avec l'opérateur
a = 4
b = 5
z = a +
b
puts z
# => 9
J'utilise cette technique pour mettre fin à une ligne avec un point si je chaîne ensemble un tas de méthodes.