Menu
Coddy logo textTech

Concatenare Map

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 22 di 56.

Hai incontrato map nei fondamenti: crea un nuovo array trasformando ogni elemento. Il suo vero potere emerge quando lo concateni con select, reject e simili.

Ogni metodo restituisce un array, quindi chiamare un altro metodo sul risultato permette di continuare:

numbers = [1, 2, 3, 4, 5]
result = numbers
  .select { |n| n.odd? }
  .map    { |n| n * 10 }
puts result.inspect   # [10, 30, 50]

Leggi la catena dall’alto verso il basso: inizia con i numeri, tieni quelli dispari, moltiplica ciascuno per 10. Nessuna variabile temporanea, nessun ciclo.

La scorciatoia &:method_name funziona ogni volta che il blocco chiama un solo metodo:

["hi", "yo"].map { |s| s.upcase }   # ["HI", "YO"]
["hi", "yo"].map(&:upcase)         # ["HI", "YO"]  (uguale)

Questa forma abbreviata è ovunque nel codice Ruby. Riconoscila quando la vedi.

challenge icon

Sfida

Facile

Leggi un elenco di parole separate da virgole. Stampa su una sola riga le parole più lunghe di 3 caratteri, in maiuscolo, unite con , .

Realizza il tutto come un'unica catena: select quelle più lunghe, applica loro map con &:upcase, poi usa join.

Per l'input hi,hello,yo,coddy,sup, l'output è:

HELLO, CODDY

Provalo tu

words = gets.chomp.split(",")

# TODO: concatena select + map(&:upcase) + join
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online