Editor PHP Zimo akan memperkenalkan anda kepada pengetahuan perkongsian tatasusunan antara kepingan dalam golang dalam artikel ini. Dalam golang, hirisan ialah tatasusunan dinamik yang boleh dikembangkan secara automatik mengikut keperluan. Perkongsian tatasusunan antara kepingan ialah ciri yang sangat penting dalam golang Ia membenarkan berbilang kepingan berkongsi tatasusunan asas yang sama tanpa menyalin data. Ini bukan sahaja menjimatkan ruang memori tetapi juga meningkatkan prestasi. Seterusnya, kami akan menerangkan secara terperinci prinsip dan penggunaan perkongsian tatasusunan antara kepingan.
Ini menerangkan fungsi penambahan kepingan.
Seperti yang dinyatakan di atas, append mengembalikan kepingan yang dikemas kini.
Adakah ini bermakna kepingan yang baru dibuat tidak berkongsi tatasusunan asas dengan kepingan sedia ada?
Untuk operasi penghirisan lain, seperti mySlice[x:y], kepingan baharu akan berkongsi tatasusunan asas dengan mySlice seperti yang ditunjukkan di bawah.
PS: Kod ujian:
var names = make([]string, 4, 10) names1 := append(names, "Tom")
Jadi dalam kes ini terdapat cukup kapasiti yang tersedia dalam nama. Oleh itu append tidak boleh mencipta tatasusunan asas baharu.
Keluaran:
[ ] [ Tom]
Bukankah output sepatutnya sama dengan tatasusunan asas yang dikongsi?
Saya pasti kehilangan sesuatu yang sangat asas di sini.
Anda betul, names1
使用与 names
tatasusunan asas yang sama.
Tidak, output tidak sepatutnya sama kerana names
的长度为 4,而 names1
mempunyai panjang 5. Ambil perhatian bahawa kedua-duanya mempunyai kapasiti (10).
Berikut ialah contoh yang mungkin menjelaskan perkara ini sedikit:
func main() { emptyNames := make([]string, 0, 10) notEmptyNames := append(emptyNames, "Jerry") extendedNames := emptyNames[:1] // OK, because 1 < cap(emptyNames) fmt.Println("emptyNames:", emptyNames) //emptyNames: [] fmt.Println("notEmptyNames:", notEmptyNames) //notEmptyNames: [Jerry] fmt.Println("extendedNames:", extendedNames) //extendedNames: [Jerry] }
Atas ialah kandungan terperinci golang: perkongsian tatasusunan antara kepingan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!