Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengubah Suai Go Slice dalam Fungsi dan Menunjukkan Perubahan dalam Slice Asal?

Bagaimanakah Saya Boleh Mengubah Suai Go Slice dalam Fungsi dan Menunjukkan Perubahan dalam Slice Asal?

Linda Hamilton
Lepaskan: 2024-12-19 14:07:16
asal
461 orang telah melayarinya

How Can I Modify a Go Slice in a Function and Have the Changes Reflected in the Original Slice?

Melalui Slices melalui Rujukan untuk Mengubah Suai Slice Asal

Dalam Go, hirisan diluluskan mengikut nilai, yang bermaksud mengubah suai kepingan dalam fungsi tidak akan menjejaskan kepingan asal di luar fungsi. Untuk mengatasi pengehadan ini, anda boleh menghantar penuding ke hirisan, membenarkan fungsi mengubah suai hirisan asal melalui rujukan.

Melalukan Penunjuk kepada Hiris

Kepada hantar penuding ke hirisan, tandatangan fungsi mesti menyertakan jenis penunjuk untuk hirisan parameter:

func modifySlice(slice *[]int) {
    *slice = append(*slice, 4)
}
Salin selepas log masuk

Contoh:

nums := []int{1, 2, 3}
modifySlice(&nums)
fmt.Println(nums) // Prints [1, 2, 3, 4]
Salin selepas log masuk

Dalam contoh ini, fungsi modifySlice mengambil penunjuk ke sepotong integer. Di dalam fungsi, pengendali asterisk (*) membatalkan rujukan penuding untuk mendapatkan kepingan asal, kemudian menambahkan 4 pada kepingan.

Mengembalikan Slice yang Diubah Suai

Pendekatan lain adalah untuk mengembalikan kepingan yang diubah suai daripada fungsi:

nums := []int{1, 2, 3}

func modifyAndReturnSlice(slice []int) []int {
    return append(slice, 4)
}

nums = modifyAndReturnSlice(nums)
fmt.Println(nums) // Prints [1, 2, 3, 4]
Salin selepas log masuk

Pendekatan ini adalah idiomatik dalam Go dan tidak perlu menghantar penuding ke hirisan.

Memilih Pendekatan yang Sesuai

Pilihan antara menghantar penuding ke hirisan atau mengembalikan kepingan yang diubah suai bergantung pada keperluan khusus bagi fungsi dan struktur kod anda. Melepasi penuding selalunya berguna apabila anda perlu mengulang dan mengubah suai berbilang kepingan atau jika pengubahsuaian adalah rumit. Mengembalikan kepingan yang diubah suai adalah lebih baik apabila fungsi hanya perlu mengubah suai satu keping dan pengubahsuaian adalah mudah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Go Slice dalam Fungsi dan Menunjukkan Perubahan dalam Slice Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan