11
votes

Ruby - Neuflines et opérateurs

Considérez le code suivant:

x = 4
y = 5
z = (y
+ x)

puts z


0 commentaires

3 Réponses :


12
votes

(Disclaimer: Je ne suis pas un programmeur de rubis. Ceci est juste une supposition sauvage.)

avec des parens, vous obtenez z étant attribué la valeur de < Pré> xxx

qui évalue à la valeur de la dernière instruction exécutée.


3 commentaires

+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.



4
votes

finissez la ligne avec \ afin de continuer l'expression sur la ligne suivante. Cela donne la sortie appropriée: xxx

sorties 9

Je ne sais pas pourquoi le résultat est inattendu sans échapper à la nouvelle ligne. Je viens d'apprendre de ne jamais faire ça.


0 commentaires

3
votes

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


1 commentaires

J'utilise cette technique pour mettre fin à une ligne avec un point si je chaîne ensemble un tas de méthodes.