English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bereich (Range) ist überall: a bis z, 0 bis 9、等等。Ruby unterstützt Bereiche und ermöglicht es uns, Bereiche auf verschiedene Weise zu verwenden:
als Sequenzbereich
als Bedingung verwendeter Bereich
Als Intervallbereich
Der erste und häufigste Verwendungszweck des Bereichs ist die Ausdrucksform von Sequenzen. Eine Sequenz hat einen Anfang, ein Ende und eine Art, wie die kontinuierlichen Werte der Sequenz erzeugt werden.
Ruby verwendet ''..'' und ''...'' Bereichsoperatoren erstellen diese Reihen. Das Zweipunktsymbol erstellt einen Bereich, der den angegebenen höchsten Wert enthält, und das Dreipunktsymbol erstellt einen Bereich, der den angegebenen höchsten Wert nicht enthält.
(1..5) #==> 1, 2, 3, 4, 5 (1...5) #==> 1, 2, 3, 4 ('a'..'d') #==> 'a', 'b', 'c', 'd'
Reihe 1..100 ist eine Bereich Objekt, das zwei Fixnum Objektbezug. Wenn erforderlich, können Sie to_a Methoden konvertieren Bereiche in Listen. Versuchen Sie den folgenden Beispiel:
#!/usr/bin/ruby $, =", " # Array-Wert-Trennzeichen range1 =1..10).to_a range2 = ('bar'..'bat').to_a puts "#{range1" puts "#{range2"
Die Ergebnisse der obigen Beispiel-Ausführung lauten:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
Bereich implementiert Methoden, die es Ihnen ermöglichen, ihre Inhalte auf verschiedene Weise zu überprüfen:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- # Definition des Bereichs digits = 0..9 puts digits.include?(5) ret = digits.min puts "Der kleinste Wert ist #{ret}" ret = digits.max puts "Der größte Wert ist #{ret}" ret = digits.reject { |i| i < 5 } puts "Diejenigen, die die Bedingung nicht erfüllen, sind #{ret}" digits.each do |digit| puts "im Zyklus #{digit}" end
Die Ergebnisse der obigen Beispiel-Ausführung lauten:
true Der kleinste Wert ist 0 Der größte Wert ist 9 Diejenigen, die die Bedingung nicht erfüllen, sind [5, 6, 7, 8, 9] im Zyklus 0 im Zyklus 1 im Zyklus 2 im Zyklus 3 im Zyklus 4 im Zyklus 5 im Zyklus 6 im Zyklus 7 im Zyklus 8 im Zyklus 9
Bereich kann auch als bedingte Ausdrucksform verwendet werden. Zum Beispiel, der folgende Codeabschnitt druckt Zeilen vom Standard-Eingabe, wobei die erste Zeile jeder Sammlung den Wort start,最后一行包含单词 end.:
while gets print if /start/../end/ end
Bereich kann in case-Anweisungen verwendet werden:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- score = 70 result = case score when 0..40 "Schlechte Note" when 41..60 "Fast bestanden" when 61..70 "Bestehensnote" when 71..100 "Gute Note" else "Falsche Note" end puts result
Die Ergebnisse der obigen Beispiel-Ausführung lauten:
Bestehensnote
Der letzte Verwendungszweck des Bereichs ist die Intervallprüfung: Überprüfen Sie, ob der angegebene Wert im angegebenen Bereich liegt. Um die Berechnung durchzuführen, ist der Gleichheitsoperator === erforderlich.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- if ((1..10) ==== 5) puts ""5 in (1..10)" end if (('a'..'j') === 'c') puts "c in ('a'..'j')" end if (('a'..'j') === 'z') puts "z in ('a'..'j')" end
Die Ergebnisse der obigen Beispiel-Ausführung lauten:
5 in (1..10) c in ('a'..'j')