0Pricing
Go Academy · Ders

Küme Olarak Map'ler

Benzersiz değerler için map kullanın

Küme Olarak Map'ler, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Go'da Küme Türü Yoktur

Go'da yerleşik bir küme türü yoktur. Benzersiz değerlerden oluşan bir kümeyi modellemenin deyimsel yolu, anahtarları küme öğeleri olan bir harita kullanmaktır.

Boole Haritası

Bir yaklaşım map[string]bool kullanmaktır. Bir anahtarın bulunması (ve değerinin doğru olması), öğenin kümede bulunduğu anlamına gelir.

package main

import "fmt"

func main() {
	set := map[string]bool{}
	set["apple"] = true
	set["banana"] = true
	fmt.Println(set)
}

Üyeliği Denetleme

Üyeliği denetlemek için virgül-ok kullanınız veya boole değerini doğrudan okuyunuz.

package main

import "fmt"

func main() {
	set := map[string]bool{"apple": true}
	fmt.Println(set["apple"])
	fmt.Println(set["cherry"])
}

Boş Yapı Haritaları

Daha verimli bir küme map[string]struct{} kullanır. Boş bir yapı sıfır bayt kaplar; bu nedenle yalnızca anahtarları saklarsınız.

package main

import "fmt"

func main() {
	set := map[string]struct{}{}
	set["x"] = struct{}{}
	_, ok := set["x"]
	fmt.Println("x in set:", ok)
}

Boş Yapı Neden Kullanılır

Bir kümede değer hiçbir zaman önemli değildir; yalnızca anahtar önemlidir. struct{}{}, değerleri yok saymayı amaçladığınızı belirtir ve her girdi için ek bellek kullanmaz.

Öğe Ekleme

Yinelenen bir anahtarı eklemenin hiçbir etkisi yoktur; bu nedenle küme benzersizliği doğal olarak korur.

package main

import "fmt"

func main() {
	set := map[string]struct{}{}
	set["a"] = struct{}{}
	set["a"] = struct{}{}
	fmt.Println("size:", len(set))
}

Yinelenenleri Kaldırma

Klasik bir kullanım alanı, bir dilimi tekilleştirmektir. Her öğeyi bir kümeye ekleyin, ardından benzersiz anahtarları geri okuyun.

package main

import "fmt"

func main() {
	input := []string{"a", "b", "a", "c", "b"}
	set := map[string]struct{}{}
	for _, v := range input {
		set[v] = struct{}{}
	}
	fmt.Println("unique count:", len(set))
}

Benzersiz Dilim Oluşturma

Kümeyi bir sonuç dilimiyle birleştirerek ilk görülme sırasını koruyabilir ve yinelenenleri kaldırabilirsiniz.

package main

import "fmt"

func main() {
	input := []int{1, 2, 1, 3, 2}
	seen := map[int]struct{}{}
	result := []int{}
	for _, v := range input {
		if _, ok := seen[v]; !ok {
			seen[v] = struct{}{}
			result = append(result, v)
		}
	}
	fmt.Println(result)
}

Kümelerin Kesişimi

İki kümede ortak olan öğeleri bulmak için bir küme üzerinde dolaşın ve diğerinde bulunan öğeleri tutun.

package main

import "fmt"

func main() {
	a := map[int]struct{}{1: {}, 2: {}, 3: {}}
	b := map[int]struct{}{2: {}, 3: {}, 4: {}}
	for k := range a {
		if _, ok := b[k]; ok {
			fmt.Println("common:", k)
		}
	}
}

Kümeden Öğe Kaldırma

Bir öğeyi kümeden çıkarmak için delete kullanınız.

package main

import "fmt"

func main() {
	set := map[string]struct{}{"a": {}, "b": {}}
	delete(set, "a")
	_, ok := set["a"]
	fmt.Println("a in set:", ok)
}

Boole ile Boş Yapı Karşılaştırması

İkisi de işe yarar. set[x] ifadesinin boole olarak okunmasının anlaşılabilirliğe katkı sağladığı durumlarda map[T]bool kullanınız. Değerlerin önemsiz olduğunu belirtmek ve büyük kümelerde bellek tasarrufu yapmak istediğinizde map[T]struct{} kullanınız.

Hızlı Denetim

Kümeler için map[string]struct{} neden çoğu zaman map[string]bool yerine tercih edilir?

Özet

Küme olarak haritalar:

  • Go'da küme türü yoktur; öğeleri anahtar olarak kullanan bir harita kullanınız
  • map[T]bool veya map[T]struct{}
  • Tekilleştirme ve üyelik denetimleri için çok uygundur

Sıkça Sorulan Sorular

“Küme Olarak Map'ler” dersi ücretsiz mi?

Evet — “Küme Olarak Map'ler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Küme Olarak Map'ler” dersinde ne öğreneceğim?

Benzersiz değerler için map kullanın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Küme Olarak Map'ler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Map İç Yapısı
  2. Varlık Denetimi
  3. Küme Olarak Map'ler
  4. Yineleme ve Sıralama
← Go Academy Sayfasına Dön