GoLang'de Mutable ve Immutable Veri Tipleri
14 Ocak 2022 • ☕️ 2 dk okuma • 🏷 bilgisayar, yazılım
Yazar tarafından şu dillere çevrildi: English
Mutable Veri Tipleri
Golang dilinde mutable veri tipleri değiştirilebilir ve değiştirilmesine izin verilen veriler için kullanılır. Bu veri tipleri, verilerin daha dinamik bir şekilde manipüle edilebilmesini sağlar ve programların esnekliğini arttırır.
Mutable (değişebilir) veri tipleri, programı başlatma sırasında atanan belleğin herhangi bir parçasını yeniden tahsis (reallocating) etmeden değiştirilebilen bir veri türüdür. Basit bir ifadeyle, bir değişken, kendisini yeni bir bellek alanına yeniden tahsis etmeden değeri değiştirilebiliyorsa değişkendir (mutable).
Mutable veri tipinde bir bellek adresinde bulunan değer değiştirilebilir. Bu değişkenin değerini değiştirmek için herhangi bir belleği yeniden tahsis etmemiz veya bir değişkenin işaretçisini başka bir adresi gösterecek şekilde değiştirmemiz gerekmediği anlamına gelir.
someNumber := 15
// someNumber değeri 15'dir ve bir hafıza adreslerinde depolanır. Örnek: 0x12212
someNumber = 18
// Veri tipi değişebilir ise, hafıza adresindeki değeri doğrudan değiştirebiliriz.
// someNumber değişkeninin işaret ettiği hafıza adresi değişmedi.
fmt.Println(someNumber) // 18
Golang’de birkaç değiştirilebilir veri türü vardır:
- Array
- Slice
- Map
- Channels
Immutable Veri Tipleri
Golang dilinde immutable veri tipleri değiştirilemez ve değiştirilmemesi gereken veriler için kullanılır. Bu veri tipleri, programların güvenilirliğini ve anlaşılırlığını arttırmak için kullanılır çünkü değiştirilemezler ve bu nedenle programın çalışma şeklinin anlaşılması kolaylaşır.
Immutable (değişmez) veri tipi yeni bir bellek tahsis edilmeden değiştirilemeyen bir veri türüdür. Bu nedenle Immutable veri türü, bir değişkenin değerinde değişiklik yapmak için belleği yeniden tahsis etmelidir. Değişken büyük bir değer kümesi tutuyorsa bu bir dezavantaj olabilir çünkü değerde küçük bir değişiklik için çok fazla bellek yeniden tahsisi gerektirecektir.
Immutable veri tipleri ayrıca değişkenin işaret ettiği bellek adresindeki değeri değiştiremeyeceğiniz ancak bir değişkenin içeriğini değiştirmek için değişkenin farklı bir bellek konumuna işaret etmesini sağlayabileceğiniz anlamına da gelir.
city := "Ankara"
// "Ankara" değeri bir bellek konumunda depolanır. Örnek: 0x12212
city = "New York"
// "New York" değeri, 0x85574 gibi farklı bir bellek konumunda yer alacaktır.
// city değişkeninin işaret ettiği hafıza adresi değiştirilir, hafıza adresinin değeri değil.
Golang’de birkaç değiştirilebilir veri türü vardır.
- String
- Boolean, Int, Float
- Pointers
- Interfaces
Kaynaklar
- https://www.golang-book.com/books/intro/3
- https://www.digitalocean.com/community/tutorials/understanding-data-types-in-go