Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Rujukan berbilang dalam parameter fungsi dan nilai pulangan fungsi Golang

Rujukan berbilang dalam parameter fungsi dan nilai pulangan fungsi Golang

WBOY
WBOYasal
2023-05-17 09:40:351166semak imbas

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!

Kenyataan:
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