Go'da Tip-Belirsiz Sabitler

Golang üzerinde birbirinden farklı iki sayı tipini toplamaya çalıştığımızda hata alırız. Birbiriyle toplanması (veya diğer dört-işlem yapılabilmesi) için türlerin aynı olması gerekir.

toplama.jpg

İşlem yapabilmek için öncelikle veri tipleri aynı olması gerekir. Örnek olarak aşağıdaki gibi çevirebiliriz.

package main

import "fmt"

func main() {
    var sayi1 = 13
    var sayi2 int16 = 20
    toplam := int16(sayi1) + sayi2
    fmt.Printf("%T , %v", toplam, toplam) // int16 , 33
}

sayi1 ve sayi2'yi toplarken sayi1'i int16 tipine çevirdik. %T format karakteri ile ekrana toplam'ın tipini bastırdık.

Tip-belirsiz sabitlerde ise bu olay biraz daha farklı oluyor. Tip belirtmeden bir değişken oluşturduğumuzda değerin tipine göre otomatik veri tipini tanımlıyor. Fakat sabitlerde veri tipimiz dinamik bir hal alıyor. Örneğimiz:

package main

import "fmt"

func main() {
    const sayi1 = 13
    fmt.Printf("sayi1'in tipi: %T \n", sayi1) //sayi1'in tipi: int
    var sayi2 int16 = 20
    toplam := sayi1 + sayi2
    fmt.Printf("%T , %v", toplam, toplam) //int16 , 33
}