Das beste Ruby Range (Bereich)-Tutorial im Jahr 2024. In diesem Tutorial können Sie Da der Bereich der Sequenz,Da der Bereich der Bedingungen,Da der Bereich des Intervalls, lernen
Range (Range) ist überall: a bis z, 0 bis 9, und so weiter. Ruby-Unterstützung Bereich und ermöglicht es uns, eine Reihe von verschiedenen Möglichkeiten zu nutzen:
Die erste und häufigste Verwendung des Bereichs wird Sequenzen exprimiert. Sequenz hat einen Startpunkt und einen Endpunkt in einer Folge einen kontinuierlichen Wert zu erzeugen.
Rubin verwendet'' de '' und '' de. ''Bereichsoperator diese Sequenzen zu erstellen. Zwei Formen schaffen einen Bereich, der den höchsten Wert der angegebenen Dreipunktbereich enthält ein Formular zu erstellen, die nicht auf die angegebene enthält Maximalwert.
(1de5) #==> 1, 2, 3, 4, 5 (1de.5) #==> 1, 2, 3, 4 ('a'de'd') #==> 'a', 'b', 'c', 'd'
1de100 Sequenz ist einRange- Objekt , das zweiFixnum- Objekt. Bei Bedarf können Sie die Methodeto_aBereich in eine Liste verwenden. Versuchen Sie, die folgenden Beispiele:
#!/usr/bin/ruby $, =", " # Array 值分隔符 range1 = (1de10).to_a range2 = ('bar'de'bat').to_a puts "#{range1}" puts "#{range2}"
Führen Sie das obige Beispiel Ausgabe lautet:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
Damit Sie eine Reihe von durchqueren ihre Methoden erreichen können, können Sie deren Inhalte auf verschiedene Weise prüfen:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- # 指定范围 digits = 0de9 puts digits.include?(5) ret = digits.min puts "最小值为 #{ret}" ret = digits.max puts "最大值为 #{ret}" ret = digits.reject {|i| i < 5 } puts "不符合条件的有 #{ret}" digits.each do |digit| puts "在循环中 #{digit}" end
Führen Sie das obige Beispiel Ausgabe lautet:
true 最小值为 0 最大值为 9 不符合条件的有 [5, 6, 7, 8, 9] 在循环中 0 在循环中 1 在循环中 2 在循环中 3 在循环中 4 在循环中 5 在循环中 6 在循环中 7 在循环中 8 在循环中 9
Bereiche auch als Bedingungsausdruck verwendet werden. Zum Beispiel Linie das folgende Codefragment Druck von der Standardeingabe, bei der jede der ersten Reihen der Sammlung das WortStart enthält,enthält die letzte Zeile das WortEnde .:
while gets print if /start/de/end/ end
Die Reichweite kann bei Anweisung verwendet werden:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- score = 70 result = case score when 0de40 "糟糕的分数" when 41de60 "快要及格" when 61de70 "及格分数" when 71de100 "良好分数" else "错误的分数" end puts result
Führen Sie das obige Beispiel Ausgabe lautet:
及格分数
Schließlich wird ein Verwendungsmuster Intervall Erkennung: Überprüfen der angegebene Wert innerhalb des angegebenen Bereichs liegt. === Sie müssen den Gleichheitsoperator verwenden, um die Berechnung abzuschließen.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- if ((1de10) === 5) puts "5 在 (1de10)" end if (('a'de'j') === 'c') puts "c 在 ('a'de'j')" end if (('a'de'j') === 'z') puts "z 在 ('a'de'j')" end
Führen Sie das obige Beispiel Ausgabe lautet:
5 在 (1de10) c 在 ('a'de'j')