Menu
Coddy logo textTech

Go'da Küme Deyimi

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 31 / 68.

Go, diğer birçok programlama dilinin aksine yerleşik bir küme (set) veri yapısına sahip değildir. Bununla birlikte, Go geliştiricileri kümeleri simüle etmek için map'leri kullanan zarif bir çözüm üretmişlerdir ve bu kalıp o kadar yaygınlaşmıştır ki idiomatik Go olarak kabul edilir.

Go kümesi deyimi, değerlerle değil yalnızca anahtarlarla ilgilendiğiniz bir map kullanır. Değer olarak bir şey saklamanız gerektiğinden, Go programcıları boş bir struct struct{} kullanır. İşte temel kalıp:

var mySet map[string]struct{}

Boş yapı struct{} özeldir, çünkü bellekte sıfır bayt yer kaplar. Bu, yalnızca bir şeyin var olup olmadığını takip etmeniz gereken kümeler için onu mükemmel kılar; anlamsız değerlere bellek harcamanıza gerek kalmaz.

Bu yaklaşım, map anahtarlarının temel özelliğinden yararlanır: benzersiz olmaları gerekir. Kümenize (set) bir öğe eklediğinizde, aslında map'e bir anahtar ekliyorsunuzdur. Benzersizlik, map'in davranışı tarafından otomatik olarak zorunlu kılınır ve size gerçek küme (set) semantiği sağlar.

Gelecek derslerde, bu deyimsel Go desenini kullanarak kümeleri nasıl oluşturacağınızı, değiştireceğinizi ve onlarla nasıl çalışacağınızı öğreneceksiniz. Bu teknik; benzersiz öğeleri takip etmek, algoritmaları uygulamak ve hızlı üyelik testi gerektiren problemleri çözmek için Go kod tabanlarında yaygın olarak kullanılır.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi