Was ich zeigen werde, ist eine umfangreiche Funktion, aber es ist nur, um mein Problem auf einfache Weise zu erklären. Wenn ich das Problem in dieser Funktion löse, habe ich das Problem auch im Originalcode gelöst.Bereich ist am Ende der "jeder" Iteration gedruckt
Das Problem ist einfach, und wahrscheinlich auch die Lösung, aber ich bin neu in Ruby und habe diesen Zweifel. Ich mag die Werte in einem Bereich drucken:
def test
(0...5).each do |i|
puts i
end
end
Wenn ich rufe Sie die Funktion, das Ergebnis, das ich will, ist
0
1
2
3
4
aber das Ergebnis, das ich habe, ist
0
1
2
3
4
0...5
Warum wird 0...5
zusammen gedruckt? Wie kann ich das vermeiden?
Ich habe hier nicht das gleiche Verhalten. Wenn ich nur meine Schleife in einer rb-Datei speichern möchte, habe ich die gewünschte Ausgabe. Aber wenn ich sie in eine Funktion setze, wird der Bereich erneut gedruckt. Wenn ich '' ruby test.rb'' in meinem Linux-Terminal anrufe. – rwehresmann
Ich habe das gerade getestet. Putting 'def foo; 1upto (5) .each {| i | setzt i}; Ende; foo' in einer Datei und das Aufrufen von 'ruby test.rb' gibt nur die Zahlen 1 bis 5 aus. Der Hauptpunkt, den ich versuche zu machen, ist, dass Sie in einer REPL (wie IRB) das Ergebnis von' puts sehen/print' ruft zusätzlich zu den zurückgegebenen Werten jeder Funktion auf. –