Slice adalah array
Pelajaran 11 dari 21 dalam kursus Slice dan Map di Go di Coddy.
Jika kamu bingung tentang hubungan slice dengan array, mari kita perjelas. Di Go, slice sebenarnya adalah referensi ke array, dan array ini disebut "backing array". Untuk memahaminya, mari kita lihat contoh:
Misalkan kita memiliki slice seperti ini:
str := []string{"Coddy", "Learn", "Play", "test"}Menurutmu, apakah slice str ini menyimpan keempat elemen tersebut secara langsung? Jawabannya tidak, karena slice itu sendiri tidak menyimpan elemen apa pun secara langsung.
Di balik layar, saat kita membuat slice seperti itu, Go membuat array di memori lalu mengembalikan nilai slice yang menunjuk ke array tersebut. Array ini disebut backing array dari slice. Jadi, yang sebenarnya menyimpan elemen adalah backing array, bukan slice.
Backing array ini dapat digunakan bersama oleh slice lain. Contohnya:
str := []string{"Coddy", "Learn", "Play", "test"}
slice1 := str[0:3]
slice2 := str[1:4]Dalam contoh ini, slice1 dan slice2 menggunakan backing array yang sama. Kita dapat melihat bahwa operasi slice tidak membuat backing array baru, melainkan membuat slice yang merujuk ke bagian dari backing array yang sama.
Jadi, dalam contoh ini, semua slice menggunakan backing array yang sama, dan kita dapat menggambarkannya seperti ini:
Setiap kali kita mengubah slice asli, slice lain juga akan mencerminkan perubahan tersebut karena semuanya mengacu ke backing array yang sama. Contohnya, jika kita mengubah "Learn" menjadi "Fun", hasilnya akan seperti ini:
Jadi, kamu perlu tahu bahwa literal slice (name := []string{}) selalu membuat backing array di balik layar.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Semua pelajaran di Slice dan Map di Go
3Cara Kerja Slice
Slice adalah arrayBuat Slice dengan makeSalin SliceHapus ElemenTantangan Ulasan #1Tantangan Ulasan #2Latihan sendiri: Compiler Go online