# Scope delle variabili

**URL:** <https://www.ruby-forum.com/t/scope-delle-variabili/79549>\
**Category:** IT\
**Created:** [December 16, 2006, 9:03am UTC](https://www.ruby-forum.com/t/scope-delle-variabili/79549 "2006-12-16T09:03:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [December 16, 2006, 9:03am UTC](https://www.ruby-forum.com/t/scope-delle-variabili/79549/1 "2006-12-16T09:03:24Z")

</div>

Salve.  
Mi sto avvicinando a piccoli passi a ruby.

Sto leggendo un manuale:“Ruby per applicazioni web”.  
Qui riporto un esempio per quanto riguarda i thread.

a = 1  
Thread.new do  
a = 2  
end  
puts #{a}

il valore riportato da puts dovrebbe essere 2.  
Ma lo scope della seconda “a” non dovrebbe essere all’interno di do end?  
Mi aspetterei quindi che puts riportasse 1 e non 2.  
Grazie.

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [December 16, 2006, 6:41pm UTC](https://www.ruby-forum.com/t/scope-delle-variabili/79549/2 "2006-12-16T18:41:55Z")

</div>

On 12/16/06, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> end  
> puts #{a}
> 
> il valore riportato da puts dovrebbe essere 2.  
> Ma lo scope della seconda “a” non dovrebbe essere all’interno di do end?  
> Mi aspetterei quindi che puts riportasse 1 e non 2.  
> Grazie.

Ciao Mauro,  
variabili che non sono state dichiarate nel contesto chiamante, sono  
create  
all’interno del blocco, locali ad esso e quindi non visibili  
all’esterno.  
Se assegni però un valore ad una variabile prima di entrare nel blocco,  
questa sarà accessibile al blocco perché i blocchi “ereditano l’ambiente”  
del contesto chiamante.  
Per cui una variabile assegnata prima di entrare nel blocco, può essere  
modificata dal blocco, e valutata successivamente.

## Ciao, Antonio

> **[Antonio Cangiano](https://antoniocangiano.com)**
>
> This is the homepage of Antonio Cangiano, a Software Development Manager at IBM, published author, web entrepreneur, and certified nutritionist.

Zen and the Art of Ruby P.ming  
[http://effettofarfalla.com](http://effettofarfalla.com)  
Il battito d’ali di un italiano a Toronto
