Menu
Coddy logo textTech

Array-Shortcuts

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 64 von 88.

Ruby bietet praktische Abkürzungen für das Erstellen von Arrays, insbesondere bei der Arbeit mit Strings oder aufeinanderfolgenden Zahlen. Diese Abkürzungen sparen Zeit und machen Ihren Code sauberer.

Die %w-Syntax erzeugt ein Array von Strings, ohne Anführungszeichen oder Kommas zu benötigen:

fruits = %w[apple banana cherry]
puts fruits  # Ausgabe: apple, banana, cherry

Dies entspricht dem Schreiben von ["apple", "banana", "cherry"], ist aber viel prägnanter. Jedes durch ein Leerzeichen getrennte Wort wird zu einem separaten Element.

Für Arrays von Symbolen verwende %i:

statuses = %i[pending active completed]
puts statuses  # Ausgabe: pending, active, completed

Um Arrays aus aufeinanderfolgenden Zahlen zu erstellen, können Sie einen Bereich mit to_a in ein Array umwandeln:

numbers = (1..5).to_a
puts numbers  # Ausgabe: 1, 2, 3, 4, 5

Du kannst den Splat-Operator auch * innerhalb von Array-Klammern verwenden:

countdown = [*5..10]
puts countdown  # Ausgabe: 5, 6, 7, 8, 9, 10

Diese Kürzel sind besonders nützlich, wenn Sie schnell eine Liste bekannter Werte definieren müssen, ohne das visuelle Durcheinander von Anführungszeichen und Kommas.

challenge icon

Aufgabe

Einfach

Lies zwei Eingaben ein:

  1. Eine einzelne Zeile mit durch Leerzeichen getrennten Wörtern (z. B. red green blue yellow)
  2. Zwei durch ein Komma getrennte Ganzzahlen, die einen Bereich darstellen (z. B. 3,7)

Führe die folgenden Aufgaben aus:

  1. Erstelle ein Array aus Strings aus der ersten Eingabe. Da die Eingabe bereits ein String ist, musst du zuerst split verwenden, um sie in ein Array umzuwandeln. Demonstriere dann die %w-Syntax, indem du ein separates Array mit den Wörtern alpha, beta, gamma erstellst.
  2. Erstelle ein Array aus Symbolen unter Verwendung von %i mit den Werten start, middle, end.
  3. Erstelle ein Array aus aufeinanderfolgenden Zahlen aus dem in der zweiten Eingabe angegebenen Bereich unter Verwendung des Splat-Operators * innerhalb von Array-Klammern.

Gib Folgendes in separaten Zeilen aus:

  1. Jedes Element des Arrays der eingegebenen Wörter
  2. Eine Leerzeile
  3. Jedes Element des %w-Arrays (alpha, beta, gamma)
  4. Eine Leerzeile
  5. Jedes Element des %i-Symbol-Arrays
  6. Eine Leerzeile
  7. Jedes Element des Zahlenbereich-Arrays

Wenn die Eingaben beispielsweise red green blue und 1,5 sind, sollte die Ausgabe wie folgt aussehen:

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

Wenn die Eingaben sun moon star und 10,13 sind, sollte die Ausgabe wie folgt aussehen:

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

Spickzettel

Ruby bietet Abkürzungen zum Erstellen von Arrays, die den Code sauberer und prägnanter machen.

Die %w-Syntax erstellt ein Array von Strings ohne Anführungszeichen oder Kommas:

fruits = %w[apple banana cherry]
# Entspricht ["apple", "banana", "cherry"]

Die %i-Syntax erstellt ein Array von Symbolen:

statuses = %i[pending active completed]
# Entspricht [:pending, :active, :completed]

Konvertieren Sie einen Bereich mit to_a in ein Array:

numbers = (1..5).to_a
# Erstellt [1, 2, 3, 4, 5]

Verwenden Sie den Splat-Operator * innerhalb von Array-Klammern, um Arrays aus Bereichen zu erstellen:

countdown = [*5..10]
# Erstellt [5, 6, 7, 8, 9, 10]

Probier es selbst

# Lies die durch Leerzeichen getrennten Wörter ein
words_input = gets.chomp

# Lies den Bereich ein (zwei durch Komma getrennte Ganzzahlen)
range_input = gets.chomp

# TODO: Schreibe deinen Code unten
# 1. Erstelle ein Array aus words_input mit split
# 2. Erstelle ein %w-Array mit alpha, beta, gamma
# 3. Erstelle ein %i-Array mit start, middle, end
# 4. Parse den Bereich und erstelle ein Array mit dem Splat-Operator (*)

# Gib die Elemente jedes Arrays in separaten Zeilen mit Leerzeilen zwischen den Arrays aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen