19 Şubat 2017 Pazar

Go'da değişkenler - gölgeli değişkenler (shadowed variables)

Golang’da aşağıdaki gibi değişken tanımlama yapılabilir:

var myVar int
var myVar = 5
myVar := 5

Global olarak “myVar:=5” şeklinde tanımlama yapılamaz. Derleme sırasında hata alacaktır. Yukarıdaki tanımlama şekillerinden ilk ikisinde olduğu gibi tanımlama yapılabilir.

Bir fonksiyon içinde, aynı scope içinde, tanımlanıyor ise o değişken kullanılmak zorundadır. Kullanılmadığı durumda derleme sırasında hata alacaktır.

Aynı scope içinde aynı değişken tekrardan tanımlanamaz. Aşağıdaki gibi tanımlama yapmak yanlıştır:

myVar := 5
fmt.Println(myVar)
myVar := 10

Derleme sırasında hata alacaktır.
Ancak çoklu değişken tanımlama sırasında, önceden tanımlanmış bir değişkene değer atanabilir:

myVar := 5
fmt.Println(myVar)
myVar, myOtherVar := 10, 7

Bu şekilde tanımlama yapılınca hata almayacaktır.
golang variable 

golang variable declaration


Bir fonksiyon içinde tanımlanan bir local değişken, içerideki başka bir scope’ta tekrar tanımlanabilir. Bunlara gölgeli değişkenler (shadowed variables) denir. Bu şekilde tanımlamalarda, daha iç scope’larda tanımlanan aynı değişkenler, dışarıda olanın değerini değiştirmeyecektir.

golang shadowed variables 

golang shadowed variables