Parametri del Block
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 18 di 56.
Le variabili tra le barre verticali, |x|, |x, y|, sono i parametri del blocco. Danno un nome ai valori che il metodo passa al blocco.
Alcuni metodi passano un valore, altri ne passano diversi. each passa un elemento alla volta:
[10, 20, 30].each { |n| puts n }each_with_index ne passa due: l’elemento e il suo indice:
["a", "b", "c"].each_with_index do |letter, i|
puts "#{i}: #{letter}"
end
# 0: a
# 1: b
# 2: cQuando si itera su un hash, i parametri del blocco sono la chiave e il valore:
{ a: 1, b: 2 }.each do |key, value|
puts "#{key} = #{value}"
endIl numero e l'ordine dei parametri del blocco dipendono da ciò che il metodo produce. In caso di dubbio, consulta la documentazione o prova con un parametro e guarda cosa ottieni.
Sfida
FacileL'hash scores è dato. Iteralo con each_with_index sulla sua forma to_a, così avrai accesso sia alla coppia (nome, punti) sia alla sua posizione. Stampa una riga per ogni voce in questo formato:
<rank>. <name> - <points>Dove rank parte da 1 (non da 0).
Per l'hash predefinito, l'output è:
1. Alice - 90
2. Bob - 85
3. Cara - 78Provalo tu
scores = { "Alice" => 90, "Bob" => 85, "Cara" => 78 }
# TODO: stampa "<rank>. <name> - <points>" per ogni elemento, partendo dal rango 1
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di datiEsercitati da solo: Compilatore Ruby online