Foto di Jack Anstey su Unsplash
Un panoramica del contesto di esecuzione dei blocchi
Sep 20, 2019 – 3 min read
In questo articolo, esploreremo i seguenti argomenti:
- scope e blocchi
- flat scope guard in classe/modulo
Prima, sentitevi liberi di consultare l’articolo Scope Gates in Ruby: Parte II articolo.
Prima di iniziare
Sono entusiasta di condividere con voi il nostro ultimo progetto: Fun Facts about Ruby – Volume 1
Sentitevi liberi di spargere la voce e condividere questo link! 🙏
Grazie per il tuo tempo!
In Ruby, un blocco può accedere all’ambito esterno
In questo esempio, possiamo accedere alla variabile outer_scope_variable
dentro il nostro blocco. Il nostro blocco ha accesso a questa variabile anche se la variabile è dichiarata in uno scope di livello main
. In questo caso, diciamo che il blocco appiattisce gli scope. Questo è il motivo per cui chiamiamo comunemente questo meccanismo: Flat Scope.
D’altra parte, il blocco crea uno scope isolato – anche se il valore di self
all’interno del blocco rimane l’oggetto main
.
Quindi non possiamo accedere alle variabili locali definite all’interno del blocco
Qui, non possiamo accedere al block_variable
dallo scope esterno. Ora che abbiamo più familiarità con la nozione di ambito piatto in Ruby, vediamo se questa nozione ha un impatto sulla definizione della classe.
Classe, modulo e blocco
In Ruby, ciò che comunemente si chiama classe è, dietro la scena, un’istanza della classe Class