Idiom set dalam Go
Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 31 dari 68.
Go tidak memiliki struktur data set bawaan seperti banyak bahasa pemrograman lainnya. Namun, para developer Go telah membuat solusi elegan dengan menggunakan maps untuk menyimulasikan set, dan pola ini sudah menjadi sangat umum sehingga dianggap sebagai gaya Go yang idiomatis.
Idiom set di Go menggunakan map yang hanya memperhatikan kunci, bukan nilainya. Karena kamu perlu menyimpan sesuatu sebagai nilai, programmer Go menggunakan struct kosong struct{}. Berikut pola dasarnya:
var mySet map[string]struct{}Struct kosong struct{} bersifat khusus karena tidak menggunakan byte memori sama sekali. Ini membuatnya sempurna untuk set saat kamu hanya perlu melacak apakah sesuatu ada atau tidak, tanpa membuang memori untuk nilai yang tidak bermakna.
Pendekatan ini memanfaatkan property dasar kunci map: kunci harus unik. Saat kamu menambahkan item ke set, sebenarnya kamu menambahkan kunci ke map. Keunikan dijamin secara otomatis oleh perilaku map, sehingga set memiliki semantik yang sesungguhnya.
Dalam pelajaran berikutnya, kamu akan belajar cara membuat, memanipulasi, dan bekerja dengan set menggunakan pola Go yang idiomatis ini. Teknik ini banyak digunakan dalam basis kode Go untuk melacak item unik, menerapkan algoritma, dan menyelesaikan masalah yang memerlukan pengujian keanggotaan secara cepat.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Alur Kontrol Lanjutan
switch dengan `fallthrough`Keluar dari Perulangan BersarangMelanjutkan Perulangan TertentuPernyataan `goto`Rangkuman, Kontrol Perulangan Lanjutan4Proyek: Daftar Tugas Sederhana
Menyiapkan ProyekMenambahkan Tugas2Struct dan Method
Mendefinisikan Method pada StructPenerima NilaiPenerima PointerMemilih PenerimaMethod vs FungsiRekap: Perilaku Struct5Map secara Mendalam
Map Berisi StructPointer sebagai Nilai MapMenguji Map NilMembandingkan MapRingkasan: Penghitung Frekuensi Kata8Proyek: Inventaris Sederhana
Gambaran Umum ProyekMemeriksa Stok3Interface (Dasar)
Apa Itu Interface?Mendefinisikan InterfaceMengimplementasikan InterfaceMenggunakan Tipe InterfaceInterface KosongType AssertionType SwitchRingkasan: Bentuk dan Perilaku6Go Idiomatis: set
Idiom set dalam GoMembuat setMenambahkan elemen ke setMemeriksa keanggotaanMenghapus elemen dari setMelakukan perulangan pada setUlasan: Nama pengguna unikLatihan sendiri: Compiler Go online