2009-03-12 8 views
1
cash = 100_000.00 
sum = 0 
cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored 

Je trouve l'exemple ci-dessus dans un livre « Learning Ruby » mais en utilisant Ruby 1.9, il ne compile pas (« interpréter »?)Quelle est la virgule pour dans cet exemple de code?

syntax error, unexpected ',', expecting $end 

Quelle est la virgule supposé faire après 1,00?

Voici le contexte complet de l'exemple:

#Also, like if, you can use while as a statement modifier, at the end of a statement: 
cash = 100_000.00 
sum = 0 
cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored 
#So cash just keeps adding up until it equals $1,000,000.00. I like that! 

Répondre

0

Eh bien, ce ne serait pas le premier ni le dernier livre de programmation à une faute de frappe flagrante dans le code.

0

Peut-être est-ce un point-virgule mal typé ou erroné (;)?

2

Il est fort probable que ce soit un point-virgule, mais le code serait toujours faux. J'ai l'impression qu'il manque un contexte. Que fait l'auteur avec la somme?

vous pouvez utiliser de la façon suivante, ce qui peut aider à expliquer l'intention.

i = 0 
puts i +=1 while i < 10 

Ce qui signifie que ce code serait logique

cash += 1.00 while cash < 1_000_000.00 
0

Tout le contexte est le suivant:

De plus, comme si, vous pouvez utiliser tout comme modificateur de l'instruction, à la fin de une déclaration:

cash = 100_000.00 
sum = 0 

cash += 1.00, sum while cash < 1_000_000.00 # underscores ignored 

Donc l'argent ne cesse addition jusqu'à ce que cela équivaut à 1 000 000 $. J'aime ça!

Il y a évidemment au moins une erreur ici. Je suppose que l'auteur a accidentellement utilisé un opérateur de virgule Perl ou C, puis supprimé seulement une partie de la déclaration fautive.

Questions connexes