Golang ialah bahasa statik ditaip kuat yang menyokong pengaturcaraan berfungsi Ia direka untuk meningkatkan kecekapan pengendalian program dan menjadikannya mudah untuk dibangunkan dan diselenggara. Dalam Golang, fungsi boleh mempunyai berbilang parameter dan nilai pulangan, dan parameter serta nilai pulangan ini boleh terdiri daripada jenis atau jenis rujukan yang berbeza. Artikel ini akan memperkenalkan berbilang rujukan dalam parameter fungsi dan mengembalikan nilai fungsi Golang.
Di Golang, fungsi boleh mempunyai berbilang parameter dan nilai pulangan, yang membolehkan pembangun menggabungkan dan menghantar data secara fleksibel. Antara parameter fungsi, jika terdapat berbilang parameter jenis rujukan, maka rujukan ini akan dihantar ke fungsi dalam bentuk alamat. Dalam nilai pulangan fungsi, jika berbilang nilai pulangan adalah jenis rujukan, rujukan ini akan dikembalikan ke luar fungsi dalam bentuk penunjuk.
Berikut ialah contoh yang menunjukkan berbilang parameter dan mengembalikan nilai fungsi dalam Golang:
func add(a, b int) (int, int, int) { return a + b, a - b, a * b } func main() { sum, sub, mul := add(3, 2) fmt.Printf("sum = %d, sub = %d, mul = %d ", sum, sub, mul) }
Dalam kod di atas, fungsi add
mempunyai dua parameter jenis int
dan Tiga nilai pulangan jenis int
. Dalam fungsi main
, kami menyimpan tiga parameter yang dikembalikan oleh fungsi add
ke dalam pembolehubah sum
, sub
dan mul
masing-masing melalui pernyataan tugasan dan mencetak output.
Selain jenis asas, Golang juga menyediakan jenis komposit seperti jenis penunjuk dan jenis slice. Antara parameter dan nilai pulangan sesuatu fungsi, jika terdapat berbilang parameter atau nilai pulangan yang merupakan jenis komposit, maka jenis komposit ini boleh menjadi jenis rujukan atau jenis nilai. Jika ia adalah jenis rujukan, ia akan dihantar atau dikembalikan sebagai penunjuk, yang bermaksud ia boleh menukar data asal di dalam atau di luar fungsi. Jika ia adalah jenis nilai, ia akan disalin, mengubah salinan data asal di dalam atau di luar fungsi.
Berikut ialah contoh yang menunjukkan berbilang parameter dan jenis komposit dalam nilai pulangan fungsi dalam Golang:
func modify(arr []int, ptr *int) ([]int, *int, int) { arr[0] = arr[0] * 2 *ptr = *ptr * 2 return arr, ptr, len(arr) } func main() { arr := []int{1, 2, 3} ptr := new(int) *ptr = 4 resArr, resPtr, resLen := modify(arr, ptr) fmt.Printf("resArr = %v, resPtr = %d, resLen = %d ", resArr, *resPtr, resLen) fmt.Printf("arr = %v, ptr = %d ", arr, *ptr) }
Dalam kod di atas, fungsi modify
mempunyai parameter jenis kepingan dan parameter jenis penunjuk, dan nilai pulangan jenis hirisan, nilai pulangan jenis penunjuk dan nilai pulangan jenis integer. Di dalam fungsi modify
, ia mula-mula mendarabkan elemen pertama hirisan dengan 2, kemudian mendarabkan nilai yang ditunjuk dengan penuding dengan 2, dan akhirnya mengembalikan hirisan, penuding dan panjang hirisan yang diubah suai sebagai nilai pulangan di luar fungsi.
Dalam fungsi main
, kami mencipta hirisan arr
dan penunjuk ptr
, dan memulakan elemen pertama arr
kepada 1 dan nilai yang ditunjuk oleh ptr
kepada 4. Kemudian panggil fungsi modify
dan simpan nilai pulangan ke dalam pembolehubah resArr
, resPtr
dan resLen
masing-masing. Akhir sekali, kami mencetak nilai resArr
, resPtr
dan resLen
, serta nilai arr
dan ptr
ke konsol. Seperti yang dapat dilihat daripada keputusan, elemen pertama arr
telah diubah suai kepada 2, dan nilai ptr
telah diubah suai kepada 8. Ini kerana fungsi modify
mengubah suai nilainya secara dalaman.
Ringkasnya, dalam Golang, fungsi boleh mempunyai berbilang parameter dan nilai pulangan, dan parameter serta nilai pulangan ini boleh terdiri daripada jenis yang berbeza, dan ia boleh menjadi jenis rujukan atau jenis nilai. Jika ia adalah jenis rujukan, ia akan dihantar atau dikembalikan sebagai penunjuk, yang membolehkan mereka mengubah suai data asal di dalam atau di luar fungsi. Jika ia adalah jenis nilai, ia akan disalin, tetapi data asal tidak akan terjejas. Kemahiran dalam berbilang parameter dan nilai pulangan fungsi sangat berguna untuk menulis fungsi Golang yang cekap, fleksibel dan mudah diselenggara.
Atas ialah kandungan terperinci Rujukan berbilang dalam parameter fungsi dan nilai pulangan fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!