Sobes.tech
Junior — Middle

Bir fonksiyon içinde, genel olarak ilan edilmiş ve süslü parantez alanında bulunan bir değişkene erişilebilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, bir değişkenin kapsamı, onun tanımlandığı blokla sınırlıdır. Bir değişken, fonksiyonun süslü parantezleri içinde (yerel değişken) tanımlandıysa, sadece bu fonksiyon ve iç içe blokları içinde erişilebilir. Go'da bir değişkenin görünürlüğü (dışa aktarılabilirliği), adındaki büyük harfle belirlenir ve bu, diğer paketlerden erişilebilirliği ifade eder, fonksiyon içinde değil.

Dolayısıyla, bir fonksiyon içinde, aynı fonksiyon veya dış kapsamda tanımlanmışsa, fonksiyonun süslü parantezleri içinde tanımlanan bir değişkene erişebilirsiniz. Eğer değişken fonksiyon içinde tanımlandıysa, o yereldir ve sadece bu fonksiyon içinde erişilebilir. Eğer değişken fonksiyon dışında tanımlandıysa ve dışa aktarılmışsa (kamuya açık), fonksiyon içinde de erişilebilir.

Örnek:

package main

import "fmt"

var PublicVar = "paket genelinde ve diğer paketlerden erişilebilir"

func ornek() {
    localVar := "sadece ornek içinde erişilebilir"
    fmt.Println(PublicVar) // kamuya açık değişkene erişim
    fmt.Println(localVar)  // yerel değişkene erişim
}

func main() {
    ornek()
}

Bir değişken fonksiyon içinde tanımlandıysa, bu fonksiyon dışında erişilemez, hatta adı "kamuya açık" olsa bile (büyük harfle başlıyorsa).