Menu
Coddy logo textTech

do..end vs parentesi graffe

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

Ruby ti offre due modi per scrivere un blocco. Significano la stessa cosa, ma ciascuno ha un caso d’uso preferito.

do...end serve per i blocchi multiriga:

[1, 2, 3].each do |n|
  doubled = n * 2
  puts "#{n} -> #{doubled}"
end

Le parentesi graffe { ... } servono per i blocchi su una sola riga, brevi e dalla forma di un'espressione:

[1, 2, 3].each { |n| puts n * 2 }

I due hanno una precedenza leggermente diversa, ma la regola da seguire è quella di stile: parentesi graffe per le istruzioni su una sola riga, do...end per quelle su più righe.

Entrambe le forme possono restituire un valore. L’ultima espressione del blocco è ciò che viene passato a metodi come map:

[1, 2, 3].map { |n| n * 10 }    # [10, 20, 30]
[1, 2, 3].map do |n|
  n * 10
end                              # [10, 20, 30]
challenge icon

Sfida

Facile

Leggi dall'input un elenco di numeri interi separati da virgole. Stampa due righe:

  1. Ogni numero raddoppiato, unito con , . Usa la forma con le parentesi graffe di map.
  2. La stringa "<n> squared is <n*n>" per ogni numero, una per riga. Usa la forma do...end di each.

Per l'input 1,2,3, l'output è:

2, 4, 6
1 squared is 1
2 squared is 4
3 squared is 9

Provalo tu

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: riga 1, valori raddoppiati, forma di map con parentesi graffe, uniti con ", "
# TODO: righe 2..n, quadrati, forma do...end di each
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