Tambahkan elemen ke slice
Pelajaran 3 dari 21 dalam kursus Slice dan Map di Go di Coddy.
Pada pelajaran sebelumnya, kita membahas bahwa perbedaan antara slice dan array terletak pada ukurannya, yang terlihat saat memeriksa panjangnya.
Misalnya, jika kita mendefinisikan slice seperti ini:
nums := []int{23, 5, 6}Slice kita memiliki tiga elemen, dan memeriksa panjangnya menggunakan fungsi <strong>len()</strong> akan menghasilkan 3:
nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3Jika kita menambahkan elemen ke slice dan memeriksa ukurannya, kita akan mendapatkan ukuran yang baru:
nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5Sebaliknya, array memiliki ukuran tetap. Contohnya:
nums := [4]int{23}
fmt.Println(len(nums)) // 4Meskipun jumlah elemennya kurang dari 4, panjangnya tetap.
Elemen ditambahkan ke slice menggunakan <strong>append</strong>:
books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)Jika dijalankan, hasilnya:
[Python Rust Golang]Di Golang, slice dilengkapi dengan fungsi bawaan, dan <strong>append()</strong> adalah salah satunya, yang memungkinkan kita menambahkan elemen baru ke slice yang sudah ada.
Perhatikan bahwa karena ukuran slice bersifat dinamis, kita tidak dapat menggunakan indeks untuk menambahkan elemen (
<strong>books[2] = "Golang"</strong>tidak akan berfungsi).
Tantangan
MudahTulis program yang mengambil 3 input dari pengguna dan menambahkannya ke slice bernama <strong>coddy</strong> seperti yang didefinisikan dalam kode yang diberikan. Lakukan langkah-langkah berikut:
- Cetak panjang slice sebelum menambahkan elemen.
- Tambahkan elemen ke slice.
- Cetak slice dan panjang yang diperbarui setelah menambahkan elemen (pada baris yang berbeda).
Coba sendiri
package main
import "fmt"
func main() {
// Ambil input dari pengguna. Jangan ubah bagian ini!
var first, second, third string
fmt.Scan(&first)
fmt.Scan(&second)
fmt.Scan(&third)
// Definisikan slice
coddy := []string {"SQL","Rust","C#","Golang"}
// Tampilkan panjangnya
// Tambahkan elemen ke slice
// Tampilkan slice dan panjang terbarunya
}Semua pelajaran di Slice dan Map di Go
Latihan sendiri: Compiler Go online