Değişkenler: var vs := — Hangisini, Nerede Kullanmalı?

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
71
Tepkime puanı
2
Puanları
8

Tembel Programcılar İçin Kısayol​

Go, Statik Tipli (Statically Typed) bir dildir. Yani C# veya Java gibi, bir değişkenin int mi yoksa string mi olduğunu baştan bilmek ister. Ancak Python gibi dinamik dillerden gelenleri de üzmemek için derleyiciye "Tahmin Etme" yeteneği (Type Inference) verilmiştir.

Go'da değişken tanımlamanın iki ana yolu vardır:

1. Uzun Yol:​

Klasik yöntemdir. Değişkenin tipini açıkça belirtirsiniz.

Kod:
var age int = 30
var name string = "Gopher"

Ne Zaman Kullanılır?
  • Fonksiyonların dışında (Paket seviyesinde/Global değişkenlerde).
  • Henüz bir değer atamayacaksanız (Zero Value kullanacaksanız).

2. Kısa Yol:​

Bu, Go'nun imzasıdır. "Var" kelimesini ve tipi yazmazsınız. Go, sağdaki değere bakar ve tipi kendi anlar.

Kod:
age := 30         // Go anlar: Bu bir int
name := "Gopher"  // Go anlar: Bu bir string
isActive := true  // Go anlar: Bu bir bool
Kural: := operatörü SADECE fonksiyon içinde kullanılabilir. Global alanda kullanılamaz.

"Zero Value" (Sıfır Değeri) Kavramı​

Diğer dillerde (C/C++), bir değişken tanımlayıp değer atamazsanız, RAM'den rastgele bir "çöp veri" gelir. Go'da ise her tipin varsayılan bir "temiz" başlangıç değeri vardır:

  • int -> 0
  • string -> "" (Boş tırnak)
  • bool -> false
  • pointer, interface -> nil
Kod:
var count int
fmt.Println(count) // Ekrana 0 yazar. Hata vermez.

Sonuç​

  • Fonksiyon içindeyseniz ve ilk değer belliyse: := kullanın. (En yaygın kullanım).
  • Global değişken tanımlıyorsanız veya ilk değeri sonra verecekseniz: var kullanın.
 
Geri
Üst