Junior
Go'da hangi temel veri yapıları vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde temel (ilkel) ve bileşen (kompozit) veri yapıları şunlardır:
Temel:
- Mantıksal değerler (
bool) - Sayısal türler:
- Tam sayılar (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Ondalıklı sayılar (
float32,float64) - Karmaşık sayılar (
complex64,complex128) - Byte (
byte-uint8'in takma adı) - Rune (
rune-int32'nin takma adı, Unicode karakterini temsil eder)
- Tam sayılar (
- Dizgeler (
string)
Bileşenler:
- Diziler (
array)- Sabit boyutlu.
var arr [5]int // 5 tam sayıdan oluşan dizi - Dilimler (
slice)- Dinamik boyutlu, dizilere dayanır.
var s []int // başlatılmamış dilim s = make([]int, 5, 10) // uzunluğu 5, kapasitesi 10 olan dilim - Haritalar (
map)- Anahtar-değer çiftleri içeren sıralı olmayan koleksiyon.
m := make(map[string]int) // anahtarları string, değerleri int olan harita - Yapılar (
struct)- Tiplenmiş alan koleksiyonu.
type Person struct { Name string Age int } - İşaretçiler (
pointer)- Bellek hücresinin adresini tutar.
var x int = 10 var p *int = &x // p, x'e işaret eder - Fonksiyonlar (
func)- Go dilinde fonksiyonlar birinci sınıf türlerdir.
type MyFunc func(int) string // fonksiyon tipi - Kanallar (
channel)- Goroutine'ler arasında senkronizasyon ve veri alışverişi için kullanılır.
ch := make(chan int) // tamponlamayan kanal, int için - Arabirimler (
interface)- Bir türün uygulaması gereken metodların kümesini temsil eder.
type Reader interface { Read(p []byte) (n int, err error) }
Ayrıca, önemli diğer bileşen türleri arasında şunlar da vardır:
- Bayt dilimleri (
[]byte) - Rune dilimleri (
[]rune)
Bu veri yapıları, Go'da çeşitli görevler için esneklik ve performans sağlar.