Ruby Range
Bereiche sind überall: von a bis z, von 0 bis 9 und so weiter. Ruby unterstützt Bereiche und erlaubt uns, Bereiche auf verschiedene Weise zu verwenden:
- Bereiche als Sequenzen
- Bereiche als Bedingungen
- Bereiche als Intervalle
Bereiche als Sequenzen
Die erste und häufigste Verwendung von Bereichen ist der Ausdruck von Sequenzen. Sequenzen haben einen Startpunkt, einen Endpunkt und eine Möglichkeit, aufeinanderfolgende Werte in der Sequenz zu erzeugen.
Ruby verwendet''..''und''...''Bereichsoperatoren, um diese Sequenzen zu erstellen. Die Zwei-Punkt-Form erstellt einen Bereich, der den angegebenen höchsten Wert einschließt, und die Drei-Punkt-Form erstellt einen Bereich, der den angegebenen höchsten Wert nicht einschließt.
Die Sequenz 1..100 ist einRange-Objekt, das zweiFixnum-Referenzen auf Objekte enthält. Bei Bedarf können Sieto_a-Methode verwenden, um den Bereich in eine Liste umzuwandeln. Probieren Sie das folgende Beispiel:
Beispiel
Ausprobieren »
Die Ausgabe des obigen Beispiels ist:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
Ranges implementieren Methoden, mit denen Sie über sie iterieren und ihre Inhalte auf verschiedene Weise überprüfen können:
Beispiel
Ausprobieren »
Das Ausführen des obigen Beispiels ergibt:
true 最小值为 0 最大值为 9 不符合条件的有 [5, 6, 7, 8, 9] 在循环中 0 在循环中 1 在循环中 2 在循环中 3 在循环中 4 在循环中 5 在循环中 6 在循环中 7 在循环中 8 在循环中 9
Bereiche als Bedingungen
Bereiche können auch als Bedingungsausdrücke verwendet werden. Zum Beispiel gibt das folgende Codefragment Zeilen von der Standardeingabe aus, wobei die erste Zeile jeder Gruppe das Wortstartenthält und die letzte Zeile das Wortend enthält.:
Bereiche können in case-Anweisungen verwendet werden:
Beispiel
Ausprobieren »
Das obige Beispiel gibt aus:
Passing score
Bereiche als Intervalle
Die letzte Verwendung von Bereichen ist die Intervallerkennung: Überprüfen, ob ein angegebener Wert in einen angegebenen Bereich fällt. Dies erfordert den Gleichheitsoperator ===, um die Berechnung durchzuführen.
Beispiel
Ausprobieren »
Das obige Beispiel gibt aus:
5 在 (1..10)
c 在 ('a'..'j')
Andere Erweiterungen