Padamkan Elemen dalam Sekeping
Coretan kod Go ini menggambarkan cara mengalih keluar elemen daripada kepingan:
func main() { a := []string{"Hello1", "Hello2", "Hello3"} fmt.Println(a) // [Hello1 Hello2 Hello3] a = append(a[:0], a[1:]...) fmt.Println(a) // [Hello2 Hello3] }
Kod ini menunjukkan helah untuk memadamkan elemen menggunakan fungsi tambah. Bagaimanakah ini berfungsi dan apakah yang dilakukan oleh pengendali ... (titik titik)?
Sintaks untuk memadamkan elemen pada indeks i daripada kepingan a ialah:
a = append(a[:i], a[i+1:]...)
Penjelasan:
Apabila append dipanggil, argumen pertama mestilah hirisan jenis yang sama seperti hirisan yang diubah suai (a dalam kes ini), argumen kedua ialah parameter variadic yang menerima sebarang nombor daripada elemen jenis yang sama dan nilai pulangan ialah kepingan baharu dengan elemen ditambah.
Dalam kod yang diberikan, pengendali hamparan membongkar elemen daripada a[1:] ke dalam variadic hujah lampiran. Ini bersamaan dengan menghantar secara manual dalam elemen a[1], a[2], .... Argumen pertama ialah kepingan kosong untuk memastikan elemen lama ditimpa.
Kesimpulan:
Helah ini membolehkan kami memadamkan elemen daripada kepingan dengan membina semula kepingan dengan elemen sebelum dan selepas elemen yang ingin kami alih keluar. Operator spread memainkan peranan penting dalam membongkar elemen yang akan ditambahkan semula ke dalam kepingan.
Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Elemen dengan Cekap daripada Go Slice Menggunakan Operator Append dan Spread?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!