Junior
Go'da hangi veri türleri vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde dört veri tipi kategorisi vardır:
-
Temel tipler (Basic types) - derleyici tarafından önceden tanımlanmış.
- Booleanler:
bool - Sayısal:
- Tam sayılar:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Ondalıklı sayılar:
float32,float64 - Karmaşık sayılar:
complex64,complex128
- Tam sayılar:
- Dizgiler:
string
- Booleanler:
-
Bileşik tipler (Aggregate types) - sabit boyutlu koleksiyonlar.
- Diziler:
[n]T(buradanboyut,Tise eleman tipi) - Yapılar:
struct {}(farklı tiplerde isimlendirilmiş alanlar koleksiyonu)
- Diziler:
-
Referans tipleri (Reference types) - referans tipleri, referansla geçirilir, temel verilere işaretçi tutar.
- Dilimler:
[]T(dinamik dizi, diziden oluşturulmuş) - Haritalar (Map):
map[K]V(anahtar-değer çiftleri koleksiyonu) - İşaretçiler:
*T(bir değişkenin adresini tutar) - Kanallar:
chan T,chan<- T,<-chan T(goroutine'ler arasında senkronizasyon ve iletişim için) - Fonksiyonlar:
func(...) (...)(işaretçi fonksiyonun imzası)
- Dilimler:
-
Arayüz tipleri (Interface types) - metod imzaları kümesini tanımlar, veri tipleri tarafından uygulanır.
- Arayüzler:
interface{}(boş arayüz),interface{ methodName(...) ... }
- Arayüzler:
Örnekler:
// Temel tipler
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Bileşik tipler
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Dizi
type Person struct { // Yapı
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referans tipleri
var slice []int = []int{1, 2, 3} // Dizi
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Harita
var ptr *int = &age // İşaretçi
var dataChan chan int = make(chan int) // Kanal
var myFunc func(int) int = func(x int) int { return x * 2 } // Fonksiyon
// Arayüz tipleri
var i interface{} = "anything" // Boş arayüz
type Shape interface { // Arayüz
Area() float64
}