[RAILS] Iterative Verarbeitung von Ruby mit jeder Methode (finde die Summe von 1 bis 10)

Umgebung

![Screenshot 2020-08-31 15.49.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/7de31e7d-4555-29a3-20ac -21aa281f02fc.png)

Musterantwort

sum = 0

10.times do |i|
  sum = sum + i + 1
end

Meine Antwort

sum = 0
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers.each do |n|
  sum += n
end

Kommentar

Ich verwende jede Methode für iterative Berechnungen im Array, während die Modellantwort die times-Methode verwendet. Der gemeinsame Punkt ist, dass die Wertesumme außerhalb des Blocks definiert wird und die für diese Summe auszuführende Verarbeitung im Block von do bis end beschrieben wird. Aber alles von 1 bis 10 zu schreiben ist nicht klug. Es gibt ein Bereichsobjekt, das einen Bereich aufeinanderfolgender Werte wie "1 bis 10" darstellt. Erstellen Sie ein Bereichsobjekt mit ... oder .. wie folgt:

Bereichsobjekt

1 ... 10 (einschließlich 10) 1..10 (ohne 10) Mit der Methode to_a für dieses Bereichsobjekt können Sie ein zusammenhängendes Array von Werten erstellen

to_a Methode

![Screenshot 2020-08-31 16.24.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/da10d3d6-3cdf-7c2b-17f5 -93c9b25ea192.png) Sie haben jetzt ein kontinuierliches Array von bis zu 10! Auf die gleiche Weise können Sie auch ein Array erstellen, indem Sie * und ein Bereichsobjekt in [] verwenden. Dies wird als Splat-Erweiterung bezeichnet. Es wird wie folgt sein. スクリーンショット 2020-08-31 16.29.32.png

Wenn Sie das Obige zusammenstellen und die Antwort des Beispiels erneut geben, lautet dies wie folgt

sum = 0
numbers = [*1..10]
numbers.each do |n|
  sum += n
end

Ich konnte es von Anfang an viel sauberer machen! Sie können es auch noch kompakter gestalten, indem Sie die einzelnen Methoden direkt auf das Bereichsobjekt anwenden. Gleichzeitig verwenden wir anstelle von do ... end als Blocknotation {}.

sum = 0
 (1..10).each{ |n| sum += n  }

Zusammenfassung

Einführung in die Kompaktierung der iterativen Berechnung mithilfe des Bereichsobjekts und der Methode to_a in jeder Methode. Wenn es um die Programmierung geht, wird nicht nur die Antwort gegeben, sondern es ist für den Betrachter nicht leicht zu verstehen und es ist einfacher, dort Code zu schreiben. Ich möchte weiterhin mit dem Bewusstsein ausgeben, wie einfach es ist, Code zu schreiben!

Verweise

Einführung in Ruby für Profis Von Sprachspezifikationen bis zu testgetriebenen Entwicklungs- / Debugging-Techniken Software Design plus Kindle-Version Junichi Ito () https://www.amazon.co.jp/dp/B077Q8BXHC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

Recommended Posts

Iterative Verarbeitung von Ruby mit jeder Methode (finde die Summe von 1 bis 10)
[Ruby] Von den Grundlagen bis zur Injektionsmethode
So finden Sie die Ursache des Ruby-Fehlers
[Android, Java] Methode zum Ermitteln des abgelaufenen Datums aus zwei Daten
Finden Sie den Unterschied von einem Vielfachen von 10
[Ruby / Refactoring] Von der iterativen Ruby-Verarbeitung wie Java und C bis zur Ruby-ähnlichen iterativen Verarbeitung
So fügen Sie die Verarbeitung mit einer beliebigen Anzahl von Elementen in die iterative Verarbeitung in Ruby ein
Wie man IGV mit Socket-Kommunikation bedient und wie man einen Ruby Gem mit dieser Methode herstellt
Geben Sie die Summe jedes Namens und seines Inhalts aus dem Mehrfacharray aus
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
Ausgabe der Verwendung der Slice-Methode
[Ruby] Code zur Anzeige des Tages
Ruby iterativer Prozess
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.
So starten Sie einen Index aus einer beliebigen Zahl in der iterativen Ruby-Verarbeitung
[Ruby-Grundlagen] Verwendung der Slice-Methode
[Ruby] Schneiden Sie eine Zeichenfolge mit der Slice-Methode aus
Von der Einführung des Geräts bis zur Erstellung der Benutzertabelle
Wie schreibe ich Scala aus der Perspektive von Java
Ich möchte die Hauptmethode mit Reflektion aufrufen
Verwenden Sie die Standardmethode der Schnittstelle ordnungsgemäß?
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Summe von Java_1 bis 100
Definition der Rubinmethode
Von Java zu Ruby !!
[Ruby] Gewöhnen Sie sich an, beim Erstellen einer Kopie einer Zeichenfolgenvariablen die dup-Methode zu verwenden
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
[Ruby] Zähle eine gerade Zahl in einem Array mit der geraden? -Methode
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
[Ruby] Finde eine Sequenz bestehend aus 0 bis 9 mit hoher Geschwindigkeit.
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
[Apache Tomcat] Die Geschichte der Verwendung von Apache OpenWebBeans zum Aktivieren von CDI
[Java-Anfänger] Konvertierung von Zeichenfolge in numerischen Wert - Was ist die parseInt-Methode der Integer-Klasse? ~
Versuchen Sie es mit Cocoa von Ruby
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[Java] Versuchen Sie, das Fizz Buzz-Problem mithilfe der rekursiven Verarbeitung zu lösen
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
Methode, um die Anzahl der Jahre zu addieren und das Monatsende zu erhalten