# # 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://derslik.kerteriz.net/go/temel-dersler/go-degiskenler.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
