Dalam bahasa Go, anda boleh menggunakan append() untuk menambahkan elemen pada kepingan secara dinamik. append() boleh menambah satu elemen, berbilang elemen, atau kepingan baharu pada hirisan Sintaksnya ialah "tambah(keping, elemen 1, elemen 2...)" atau "tambahkan(kepingan, kepingan baharu...)" . Apabila menggunakan fungsi append() untuk menambahkan unsur secara dinamik pada hirisan, jika ruang tidak mencukupi untuk menampung elemen yang mencukupi, hirisan akan "diperluaskan", dan panjang hirisan baharu akan berubah.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Dalam bahasa Go, anda boleh menggunakan append() untuk menambahkan elemen pada kepingan secara dinamik.
Go language append() function
apend boleh menambah satu elemen, berbilang elemen dan kepingan baharu pada kepingan
var a []int a = append(a, 1) // 追加1个元素 a = append(a, 1, 2, 3) // 追加多个元素, 手写解包方式 a = append(a, []int{1,2,3}...) // 追加一个切片, 切片需要解包
Walau bagaimanapun, perlu diingatkan bahawa apabila menggunakan fungsi append() untuk menambahkan elemen secara dinamik pada hirisan, jika ruang tidak mencukupi untuk memuatkan elemen yang mencukupi, hirisan akan "diperluaskan" dan kepingan baharu akan Panjang akan berubah.
Apabila hirisan dikembangkan, peraturan pengembangan kapasiti adalah untuk mengembang sebanyak 2 kali ganda kapasiti, seperti 1, 2, 4, 8, 16..., kodnya adalah seperti berikut:
var numbers []int for i := 0; i < 10; i++ { numbers = append(numbers, i) fmt.Printf("len: %d cap: %d pointer: %p\n", len(numbers), cap(numbers), numbers) }
Kod Output adalah seperti berikut:
Penerangan kod adalah seperti berikut:
Barisan 1, mengisytiharkan kepingan integer.
Baris 4, gelung menambah 10 nombor pada kepingan nombor.
Baris 5, cetak perubahan panjang, kapasiti dan penunjuk hirisan, gunakan fungsi len() untuk melihat bilangan elemen yang ada pada kepingan dan gunakan topi fungsi( ) untuk melihat kapasiti kepingan.
Dengan melihat output kod, anda boleh menemui corak yang menarik: len panjang kepingan tidak sama dengan topi kapasiti kepingan.
Proses menambah elemen secara berterusan pada kepingan adalah serupa dengan syarikat yang bergerak Pada peringkat awal pembangunan syarikat, dana adalah terhad dan terdapat sedikit pekerja, jadi hanya bilik kecil diperlukan untuk menampung semua. Pekerja. Apabila perniagaan berkembang, Pengembangan dan peningkatan pendapatan memerlukan pembesaran stesen kerja, tetapi saiz ruang pejabat adalah tetap dan tidak boleh diubah Oleh itu, syarikat hanya boleh memilih untuk berpindah, semua kakitangan perlu untuk dipindahkan ke lokasi pejabat baharu.
Pekerja dan stesen kerja ialah elemen dalam kepingan.
Pejabat ialah memori yang diperuntukkan.
Bergerak bermaksud mengagihkan semula ingatan.
Tidak kira berapa kali anda berpindah, nama syarikat tidak akan berubah dan nama pembolehubah yang mewakili kepingan luaran tidak akan berubah.
Memandangkan alamat bertukar selepas berpindah, "alamat" memori juga akan diubah suai.
Selain menambah pada penghujung kepingan, kita juga boleh menambah elemen pada permulaan kepingan:
var a = []int{1,2,3} a = append([]int{0}, a...) // 在开头添加1个元素 a = append([]int{-3,-2,-1}, a...) // 在开头添加1个切片
Menambah elemen pada permulaan hirisan biasanya akan menyebabkan pengagihan semula memori , dan akan menyebabkan semua elemen sedia ada disalin sekali Oleh itu, prestasi menambah elemen dari permulaan hirisan adalah lebih teruk daripada menambahkan elemen dari ekor.
Oleh kerana fungsi tambah mengembalikan ciri hirisan baharu, hirisan juga menyokong operasi rantaian Kami boleh menggabungkan berbilang operasi tambah untuk memasukkan elemen di tengah hirisan:
var a []int a = append(a[:i], append([]int{x}, a[i:]...)...) // 在第i个位置插入x a = append(a[:i], append([]int{1,2,3}, a[i:]...)...) // 在第i个位置插入切片
Setiap satu. Panggilan tambah kedua dalam setiap operasi tambah mencipta hirisan sementara, menyalin kandungan a[i:] ke hirisan yang baru dibuat, dan kemudian tambahkan hirisan yang dibuat buat sementara pada a[:i].
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Cara menambah elemen pada kepingan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!