> For the complete documentation index, see [llms.txt](https://derslik.kerteriz.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://derslik.kerteriz.net/go/temel-dersler/go-degiskenler.md).

# # Go Değişkenler

Programlama dillerinde elinizde ki sayı, isim, liste gibi ögeleri tutarken değişkenlere ihtiyaç duyarsınız ve **değişkenler (variables)** programlamada en temel ögelerdir. Özetle değişkenler elinizde ki verileri depolamanızı mümkün kılar. Birçok programlama dilinde değişkenleri oluştururken verinin tipini *(sayı mı, karakter mi, dizi mi gibi)* değişken isimlerinin önüne getirdiğiniz belirteçlerle tanımlarsınız. Fakat Go ile oluşturduğunuz değişkenlerde hiçbir ön ek kullanmadan bile değişken oluşturabilirsiniz.

{% hint style="warning" %}
Go programlama dilinde tanımladığınız bir değişkeni program için de kullanmazsanız hata alırsınız. **Go, kullanmayacağınız bir değişken tanımlamanıza izin vermez.** Bu nedenle sadece ihtiyacınız varsa değişken tanımlayınız.
{% endhint %}

## 1. Değişken Tanımlama

Bu dersimizde Go programlama dilinde değişken oluşturmanın birden fazla yöntemini göreceğiz. İlk olarak `var` anahtar kelimesiyle değişken oluşturmayı göreceğiz.

```go
var isim = "Kerteriz"
var yas = 25
```

Dilerseniz `var` kullanımda değişkenlerin tiplerini de belirtebilirsiniz.

```go
var sehir string = "Ankara"
var pi double = 3.14
```

Tabi `var` anahtar kelimesini kullanmadan da değişkenler tanımlayabilirsiniz.

```go
meyve := "Muz"
sayi := 100
```

Bu üç farklı değişken tanımlama formatı için tek satırda çoklu değişken de tanımlayabilirsiniz.

```go
var a, b = "Elma", "Armut"
var x, y, z int = 15, 25, 35
a, b, c := "A", "B", "C"
```

Okuması daha kolay bir değişken tanımlama kullanımı için ise şunu kullanabilirsiniz.

```go
var (
    isim = "Blog"
    yas = 25
    sehir string = "Ankara"
)
```

## 2. Local ve Global Değişkenler

Oluşturduğumuz değişkenler kapsam alanlarına göre `local` ve `global` olarak ikiye ayrılırlar. Eğer `local` bir değişken oluşturursak bu değişkene sadece aynı fonksiyon içinde erişebiliriz. Fakat `global` olarak oluşturulan değişkenlere tüm fonksiyonlardan erişebiliriz.

```go
package main
 
import "fmt"

a := 10  //global değişken
 
func main() {
  var b int = 20  // local değişken
  fmt.Println(b)  // doğru çalışır
}

func f() {
  fmt.Println(a)  // doğru çalışır
  fmt.Println(b)  // hata verir
}
```

Bu örnekte `a` değişkeni fonksiyonların dışında global olarak tanımlandığı için tüm fonksiyonlar rahatlıkla erişebilir. Fakat `b` değişkeni `main()` fonksiyonu içinde tanımlandığı için sadece `main()` fonksiyonu erişebilir.

## 3. Sabit Değişkenler

Go programlama dilinde sabit değişkenleri de kullanabilirsiniz. `const` anahtar kelimesiyle oluşturacağınız sabit bir değişkenin daha sonradan değerini değiştiremezsiniz.

```go
const pi float64 = 3.14
```
