Rumah > Artikel > pembangunan bahagian belakang > Kaedah aplikasi parameter tatasusunan fungsi Golang
Kaedah aplikasi parameter tatasusunan fungsi Golang
Golang ialah bahasa pengaturcaraan sumber terbuka yang mudah dipelajari, cekap dan selamat serta mempunyai ciri pengumpulan sampah. Tatasusunan ialah jenis data yang sangat asas dalam Golang Tatasusunan juga merupakan cara biasa untuk menulis atur cara sebagai parameter fungsi. Artikel ini akan memperkenalkan kaedah aplikasi tatasusunan sebagai parameter fungsi di Golang, dengan harapan dapat memberi inspirasi kepada pembaca dalam aplikasi fungsi Golang.
Apabila tatasusunan diluluskan sebagai nilai fungsi, parameter formal fungsi akan mendapat salinan yang sama dengan nilai parameter sebenar Pengubahsuaian kepada parameter formal tidak menjejaskan parameter sebenar. Kaedah ini sesuai untuk situasi di mana anda perlu melakukan beberapa operasi mudah pada tatasusunan dalam fungsi.
Sebagai contoh, kod berikut:
package main import "fmt" func modifyArr(arr [3]int) { for i := 0; i < len(arr); i++ { arr[i] += i } } func main() { var arr [3]int = [3]int{1, 2, 3} fmt.Printf("Before modified, arr = %v ", arr) modifyArr(arr) fmt.Printf("After modified, arr = %v ", arr) }
Hasil output adalah seperti berikut:
Before modified, arr = [1 2 3] After modified, arr = [1 2 3]
Ia boleh didapati bahawa walaupun tatasusunan diubah suai dalam fungsi modifyArr, tatasusunan dicetak dalam nilai fungsi utama, nilai tatasusunan tidak berubah.
Apabila tatasusunan dihantar sebagai penunjuk kepada fungsi, fungsi boleh mengubah suai kumpulan parameter sebenar secara langsung sesuai untuk situasi di mana Situasi di mana operasi yang lebih kompleks dilakukan dalam fungsi.
Berikut ialah contoh kod:
package main import "fmt" func modifyArrByPointer(arr *[3]int) { for i := 0; i < len(arr); i++ { arr[i] += i } } func main() { var arr [3]int = [3]int{1, 2, 3} fmt.Printf("Before modified, arr = %v ", arr) modifyArrByPointer(&arr) fmt.Printf("After modified, arr = %v ", arr) }
Hasil output adalah seperti berikut:
Before modified, arr = [1 2 3] After modified, arr = [1 3 5]
Seperti yang anda lihat, dalam fungsi modifyArrByPointer, kami mengubah suai tatasusunan melalui penunjuk operasi.
Apabila tatasusunan diluluskan sebagai parameter hirisan fungsi, semua operasi penghirisan tatasusunan boleh digunakan di dalam fungsi . Kelebihan kaedah ini ialah ia tidak akan Menyalin keseluruhan tatasusunan, sebaliknya hanya menghantar rujukan. Kaedah ini sesuai untuk senario di mana penghirisan diperlukan untuk beroperasi pada tatasusunan.
Sebagai contoh, kod berikut:
package main import "fmt" func modifyArrBySlice(arr []int) { for i := 0; i < len(arr); i++ { arr[i] += i } } func main() { var arr [3]int = [3]int{1, 2, 3} fmt.Printf("Before modified, arr = %v ", arr) modifyArrBySlice(arr[:]) fmt.Printf("After modified, arr = %v ", arr) }
Hasil output adalah seperti berikut:
Before modified, arr = [1 2 3] After modified, arr = [1 3 5]
Seperti yang anda lihat, dalam parameter fungsi modifyArrBySlice, kami menggunakan arr [:] untuk melepasi tatasusunan Menghiris, dengan cara ini, tatasusunan boleh dihiris.
Di Golang, struktur juga boleh mengandungi medan jenis tatasusunan. Apabila menghantar struktur dalam fungsi, anda boleh memilih untuk menghantar rujukan atau nilai struktur untuk beroperasi pada tatasusunan.
Contohnya, kod berikut:
package main import "fmt" type ArrStruct struct { arr [3]int } func modifyArrByStruct(s ArrStruct) { for i := 0; i < len(s.arr); i++ { s.arr[i] += i } } func modifyArrByStructPointer(s *ArrStruct) { for i := 0; i < len(s.arr); i++ { s.arr[i] += i } } func main() { var s ArrStruct = ArrStruct{[3]int{1, 2, 3}} fmt.Printf("Before modified, arr = %v ", s.arr) modifyArrByStruct(s) fmt.Printf("After modified by value, arr = %v ", s.arr) modifyArrByStructPointer(&s) fmt.Printf("After modified by pointer, arr = %v ", s.arr) }
Hasil output adalah seperti berikut:
Before modified, arr = [1 2 3] After modified by value, arr = [1 2 3] After modified by pointer, arr = [1 3 5]
Seperti yang anda lihat, apabila kita melepasi struktur sebagai nilai fungsi , fungsi itu tidak boleh diubah suai Nilai pembolehubah ahlinya, tetapi apabila struktur diluluskan sebagai penunjuk kepada fungsi, pembolehubah ahlinya boleh diubah suai.
Ringkasan:
Di Golang, terdapat tiga cara untuk menggunakan tatasusunan sebagai parameter fungsi: hantaran nilai, hantaran penunjuk dan hantaran hirisan. Hantaran nilai sesuai untuk senario operasi mudah, hantaran penunjuk sesuai untuk senario yang memerlukan operasi kompleks di dalam fungsi, dan hantaran hirisan sesuai untuk senario yang memerlukan operasi menghiris pada tatasusunan. Di samping itu, dalam struktur, jika tatasusunan ialah pembolehubah ahli struktur, anda boleh memilih untuk menggunakan penunjuk struktur untuk lulus parameter untuk pengubahsuaian. Dalam aplikasi sebenar, pembangun harus memilih kaedah pemindahan parameter yang sesuai mengikut keperluan khusus.
Atas ialah kandungan terperinci Kaedah aplikasi parameter tatasusunan fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!