2017-01-06 3 views
0

Ich habe vor kurzem angefangen, die Ruby-Programmiersprache zu lernen und bin auf seltsames Verhalten gestoßen, als ich einen Basiscode geschrieben habe. Der Code, den ich unten geschrieben habe, funktioniert gut, wenn ich auf Webseiten kompiliere, auf denen ich Ruby-Code wie "repl.it" ausführen kann, aber wenn ich versuche, meinen Code in RubyMine mit dem Ruby-2.3.3-p222-SDK zu kompilieren oder über CMD, mein Code führt zu keiner Ausgabe. Der Code sollte die Zahl "10" ausgeben, gibt aber irgendwie überhaupt nichts aus, außer mit "Exit Code 0" zu beenden. Was mache ich falsch oder fehlt?Ruby - fehle ich Methoden?

numbers = [1, 2, 3, 4] 
numbers.map {|num| num*num} 
numbers.select {|num| num%2==0} 
numbers.inject do |sum, num| 
    sum + num 
end 

Antwort

1

Sie erhalten keine Ausgabe, weil Sie nichts ausgeben. REPLs haben einen schönen Nebeneffekt, wo sie normalerweise den Wert des zuletzt ausgeführten Befehls anzeigen. Das haben Sie auf repl.it gesehen. Um die erwartete Ausgabe das Ergebnis drucken müssen zu erhalten:

numbers = [1, 2, 3, 4] 
numbers.map {|num| num*num} 
numbers.select {|num| num%2==0} 
result = numbers.inject do |sum, num| 
    sum + num 
end 
p result 
+0

Note der 'P' vor dem' numbers.select', @MihkelPajunen –

+0

Vielen Dank für Ihre Antwort. Ich hätte nie gedacht, dass ich den letzten Wert und nicht die Ausgabe ansehe. – MihkelPajunen