Değişkenler, herhangi bir türden değer depolamak için kullanılır. GO’da değişkenler var ifadesiyle ile tanımlanır.
Kurallar:
- Değişken adı harf veya alt çizgi ile başlayabilir.
- Başlangıçtan sonra herhangi bir harf, sayı veya alt çizgi gelebilir.
- Büyük/Küçük harfe duyarlıdır.
- Değişken adı go’nun anahtar kelimelerinden biri olamaz.
- Değişkenin uzunluğunda bir sınırlama yoktur.
Değeri olmayan tekli değişken tanımlama
Aşağıda, değeri olmayan bir değişken tanımladım. Birincisi var anahtar sözcüğü, ikincisi değişken adı ve üçüncüsü değişken türüdür. Ayrıca, değer sağlanmadığından dolayı değişken varsayılan olarak sıfır değerini almaktadır.
var <variable_name> <type>
Örnek; değişken ismi abc, türü int olan ve değeri olmayan bir değişken tanımladım.
package main import "fmt" func main() { var abc int fmt.Println(abc) }
Kod Çıktısı: Kod çalıştırıldığında değeri 0 olan int türündeki sonuç ekrana yazdırılacaktır.
Değer atanan tekli değişken tanımlama
Her şey yukarıdaki ile aynıdır, sadece değişkenin sonuna değişkene değer atıyoruz.
var <variable_name> <type> = <value>
Örnek; değişken ismi abc, türü int olan ve değeri 100298 olan bir değişken tanımladım.
package main import "fmt" func main() { var abc int = 100298 fmt.Println(abc) }
Kod Çıktısı: Kod çalıştırıldığında değeri 100298 olan int türündeki sonuç ekrana yazdırılacaktır.
Değeri olmayan çoklu değişken tanımlama
Aşağıda, değeri olmayan çoklu değişken tanımladım. Bilmeniz gereken, aynı türdeki değişkenlerin birlikte tanımlanacağıdır.
var <first1>, <second2>,…..,<endlessN> <type>
package main import "fmt" func main() { var abc, def int fmt.Println(abc) fmt.Println(def) }
Kod Çıktısı: Varsayılan olarak int türünde sıfır değerini yazdırır.
0 0
Değer atanan çoklu değişken tanımlama
Her şey yukarıdaki ile aynıdır, sadece değişkenin sonuna değişkene değer atıyoruz. Ve aynı türde olduğuna dikkat ediyoruz.
var <first1>, <second2>,…..,<endlessN> <type> = <value1>, <value2>,…..,<valueN>
package main import "fmt" func main() { var abc, def int = 10, 12 fmt.Println(abc) fmt.Println(def) }
Kod Çıktısı:
10 12
Farklı türlerdeki değişkenleri tanımlama
Aşağıda, farklı türlere sahip birden çok değişken tanımladım. Değeri atanmamış değişkenler, o türün varsayılan değerini alır.
package main import "fmt" func main() { var ( abc int def int = 1002 xyz string = "onur" ) fmt.Println(abc) fmt.Println(def) fmt.Println(xyz) }
Kod Çıktısı:
0 1002 onur
Tür belirtmeden değişken tanımlama
Değişkenler ayrıca tür belirtilmeden de tanımlanabilir. Değişkene atanan değere göre GO derleyicisi değişkenin türünü belirleyecektir.
var <variable_name> <type>
Aşağıdaki tabloda temel değişken türlerini verdim. Örnek olarak, değer bir tamsayı ise ekrana yazdırılan değişkenin türünün int olacağı, değer bir ondalık değer ise ekrana yazdırılan değişkenin türünün float64 olacağı ve diğer değerlere karşılık gelen değişken türleri aşağıdaki tabloda da gösterildiği gibi olacağıdır.
Integers | int |
Floats | float64 |
Complex Numbers | complex128 |
Strings | string |
Booleans | bool |
Characters | int32 or rune |
Örnek:
package main import "fmt" func main() { var a = 1002 //Sonuç int olacaktır. var b = "onur" //Sonuç string olacaktır. var c = 3.20 //Sonuç float64 olacaktır. var d = false //Sonuç bool olacaktır. var e = 'a' //Sonuç rune olacaktır. var f = 4 + 2i //Sonuç complex128 olacaktır. var g = sample{name: "test"} //Sonuç main.Sample olacaktır. fmt.Printf("Tür: %T Değer: %v\n", a, a) fmt.Printf("Tür: %T Değer: %v\n", b, b) fmt.Printf("Tür: %T Değer: %v\n", c, c) fmt.Printf("Tür: %T Değer: %v\n", d, d) fmt.Printf("Tür: %T Değer: %v\n", e, e) fmt.Printf("Tür: %T Değer: %v\n", f, f) fmt.Printf("Tür: %T Değer: %v\n", g, g) } type sample struct { name string }
Kod Çıktısı:
Tür: int Değer: 1002 Tür: string Değer: onur Tür: float64 Değer: 3.2 Tür: bool Değer: false Tür: int32 Değer: 97 Tür: complex128 Değer: (4+2i) Tür: main.sample Değer: {test}