[Ruby / Refactoring] Von der iterativen Ruby-Verarbeitung wie Java und C bis zur Ruby-ähnlichen iterativen Verarbeitung

Einführung

Nachdem ich Java und C gelernt habe, implementiere ich das Programm in Ruby. Zu diesem Zeitpunkt hat die ursprünglich implementierte Schleifenanweisung den Implementierungsinhalt wie Java, Da es nicht wie Ruby aussah, haben wir es wie folgt überarbeitet.

Ich würde es begrüßen, wenn Sie mir beibringen könnten, ob es eine Ruby-ähnliche Beschreibungsmethode als die folgende gibt.

Programminhalt

Ein Programm, das ungerade Zahlen von 0 bis 100 anzeigt

Vor der Korrektur

Beschreiben Sie den iterativen Prozess gemäß der folgenden Ruby-Syntax. Einfach zu schreiben, da Sie an Anweisungen in Java- und C-Sprachen gewöhnt sind.

für Variable im Objekt tun
Prozess, der wiederholt ausgeführt werden soll
end

loop.rb


for n in 0..100 do
  if n % 2 != 0 then
    puts n
  end
end

Überarbeitet

Wenn Sie Ruby studieren, werden Sie feststellen, dass es üblich ist, jedes für die iterative Verarbeitung zu verwenden. Darüber hinaus Methoden, die ganze Zahlen ungerade? Gerade? Wenn Sie die Instanzmethode wie select kennen, wie unten Sie können den iterativen Prozess ändern.

#Gibt true zurück, wenn es ungerade ist
3.odd? #Ausführungsergebnis wahr

#Methode auswählen
#Beurteilen Sie jedes Element in Blöcken und geben Sie nur echte Elemente zurück
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
puts array.select(&:odd?) #Ausführungsergebnis 1 3 5 7 9

loop.rb


(0..100).select(&:odd?).each do |n|
  puts n
end

Schließlich

Die Ruby for-Anweisung scheint jede Methode zur Laufzeit ausgeführt zu haben. (Es scheint, dass die Tatsache, dass eine andere Methode tatsächlich wie oben beschrieben ausgeführt wird, als Syntaxzucker bezeichnet wird.) Ich persönlich empfehle jeden, wenn iterative Prozesse in Ruby geschrieben werden.

Aus dieser Überarbeitung möchte ich die folgenden Lektionen lernen. *** Tritt in Ruby ein und folge Ruby *** Ich würde gerne mit dem gleichen Geist arbeiten, wenn ich andere Sprachen lerne.

Recommended Posts

[Ruby / Refactoring] Von der iterativen Ruby-Verarbeitung wie Java und C bis zur Ruby-ähnlichen iterativen Verarbeitung
Von Java zu Ruby !!
Java-Sprache aus der Sicht von Kotlin und C #
AtCoder ARC 081 C-Hash, der in Ruby, Perl und Java gelöst werden muss
Von Java nach C und von C nach Java in Android Studio
AtCoder ABC 111 C Hash-Sortierung In Ruby, Perl und Java gelöst
Iterative Verarbeitung von Ruby mit jeder Methode (finde die Summe von 1 bis 10)
Versuchen Sie, Ruby und Java in Dapr zu integrieren
Ruby iterativer Prozess
So starten Sie einen Index aus einer beliebigen Zahl in der iterativen Ruby-Verarbeitung
Java iterativer Prozess
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
Konvertieren Sie Java Enum Enumeration und JSON von und nach Jackson
Lösen mit Ruby, Perl und Java AtCoder ABC 128 C.
Generieren Sie Modelle von JSON zu Swift, PHP, C #, JAVA
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Lösen mit Ruby, Perl und Java AtCoder ABC 113 C Referenz
[Java] Ändern Sie Sprache und Gebietsschema mit JVM-Optionen in Englisch
Schreiben und Notizen bei der Migration von VB zu JAVA
ClassCastException tritt bei der Migration von Java7 auf Java8 auf. ~ Generics and overload ~
Lösen mit Ruby, Perl und Java AtCoder ABC 129 C (Teil 1)
Migration von Cobol nach JAVA
Neue Funktionen von Java7 bis Java8
Verwenden Sie das C-Programm von Ruby
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Ruby C Erweiterung und flüchtig
☾ Java / Repeat-Anweisung und Repeat-Steueranweisung
Von ineffektivem Java zu effektivem Java
C # und Java überschreiben Story
Suchen und Ausführen einer Methode aus einer Instanz mit Verarbeitung (Java)
Offline-Echtzeit zum Schreiben eines F03-Ruby- und C-Implementierungsbeispiels
Hinweise zum Erstellen der Kotlin-Entwicklungsumgebung und zur Migration von Java nach Kotlin
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
Abrufen und Hinzufügen von Daten aus dem Firebase Firestore in Ruby
Ich habe versucht, eine C-Sprachprogrammquelle aus cURL zu generieren
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Einführung in Scala aus Java-Perspektive (grundlegend)