Was ist eine Range?
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 6 von 56.
Du hast bereits Ranges mit for-Schleifen und Array-Slicing verwendet. Aber eine Range ist ein echtes Ruby-Objekt, nicht nur Syntax; sie hat ihre eigenen Methoden.
Erstellen Sie einen mit .. (zwei Punkte, inklusiv) oder ... (drei Punkte, exklusiv des Endwerts):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Konvertieren Sie einen Bereich mit to_a in ein Array, um genau zu sehen, was er abdeckt:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Bereiche (Ranges) sind nicht nur für Zahlen gedacht. Sie funktionieren mit allem, was eine Reihenfolge hat, einschließlich Buchstaben:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Aufgabe
AnfängerLies zwei Ganzzahlen (zwei Eingabezeilen) ein: einen start und einen end_value. Gib drei Zeilen aus:
- Den inklusiven Bereich
start..end_valueals Array (verwendeinspect) - Den exklusiven Bereich
start...end_valueals Array - Die Größe des inklusiven Bereichs
Für die Eingabe 1 und dann 5 ist die Ausgabe:
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5Spickzettel
Bereiche in Ruby verwenden .. (inklusiv) oder ... (exklusiv des Endes):
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Konvertieren Sie einen Bereich mit to_a in ein Array:
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Bereiche funktionieren auch mit Buchstaben:
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Probier es selbst
start = gets.to_i
end_value = gets.to_i
# TODO: Den inklusiven Bereich, den exklusiven Bereich und die inklusive Größe ausgeben
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
String-Methoden im ÜberblickString-InterpolationIterieren über StringsSplit und JoinRückblick – String Weaver4Blöcke, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas yield-SchlüsselwortBlock-ParameterProcs und LambdasZusammenfassung – Eigener Iterator7Hashes Teil 2
Hash.new mit StandardwertenIterieren über HashesVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler10Projekt - Studentenverwaltung
ProjektübersichtStudent hinzufügen5Enumerable-Kraftpaket
Select und RejectMap-VerkettungReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Data Pipeline8Fortgeschrittene Entscheidungslogik
Case mit Klassen & RegexMulti-Value whenTernärer OperatorInline if / unlessRückblick – Noten-Klassifizierer