Rumah >pembangunan bahagian belakang >Golang >parameter pembolehubah golang

parameter pembolehubah golang

王林
王林asal
2023-05-21 22:56:06675semak imbas

Golang ialah bahasa pengaturcaraan yang telah banyak dibincangkan sejak beberapa tahun kebelakangan ini Kesederhanaan, kecekapan dan sokongannya untuk pengaturcaraan serentak telah menjadi pilihan ramai pembangun. Di Golang, fungsi parameter pembolehubah ialah model pengaturcaraan yang sangat penting Artikel ini akan menerangkan fungsi parameter pembolehubah Golang secara terperinci.

1. Takrif fungsi parameter berubah dalam Golang

Di Golang, fungsi parameter berubah juga dipanggil fungsi parameter berubah, yang membolehkan fungsi menerima sebarang bilangan parameter. Fungsi parameter pembolehubah Golang ditakrifkan dengan menambahkan elipsis "..." di hadapan jenis parameter. Contohnya:

func funcName(args ...type) return_type {}

Dalam takrifan fungsi di atas, parameter args ialah parameter tidak tentu dan boleh menerima sebarang bilangan parameter jenis jenis.

2. Penggunaan fungsi parameter pembolehubah di Golang

Di Golang, penggunaan fungsi parameter berubah adalah sangat fleksibel. Ia boleh digunakan untuk mengendalikan fungsi yang perlu menerima sebarang bilangan parameter, dan juga boleh digunakan untuk melanjutkan fungsi fungsi lain.

  1. Gunakan fungsi parameter tak tentu untuk menerima berbilang parameter

Senario penggunaan biasa ialah apabila anda tidak pasti berapa banyak parameter yang perlu anda terima semasa mentakrifkan fungsi, anda boleh menggunakan fungsi parameter tak tentu untuk dikendalikan. Sebagai contoh, jumlah fungsi berikut boleh menerima sebarang bilangan parameter jenis int dan mengembalikan jumlahnya.

func sum(args ...int) int {

var total int
for _, v := range args {
    total += v
}
return total

}

Apabila menggunakan fungsi jumlah, anda boleh memasukkan sebarang bilangan parameter jenis int:

jumlah(1, 2, 3) // Pulangan: 6
jumlah(1, 2, 3, 4, 5) // Pulangan: 15

  1. Kembangkan fungsi lain Fungsi

Satu lagi senario penggunaan biasa ialah memanjangkan kefungsian fungsi asal sambil mengekalkan fungsinya. Sebagai contoh, cetakan fungsi berikut boleh memanjangkan fungsi pencetakan mana-mana fungsi supaya ia mencetak nama fungsi dan jumlah bilangan parameter sebelum mencetak parameter fungsi.

func print(fn func(...antara muka{}) (int, error)) func(...interface{}) (int, error) {

return func(args ...interface{}) (int, error) {
    name := runtime.FuncForPC(reflect.ValueOf(fn).Pointer()).Name() // 获取函数名称
    fmt.Printf("Function %s got %d args: ", name, len(args)) // 打印函数名和参数个数
    return fn(args...)
}

}

Apabila menggunakan fungsi cetakan, anda hanya perlu lulus fungsi yang perlu dikembangkan sebagai parameter:

func hello(rentetan nama, int umur) {

fmt.Printf("Hello, my name is %s and I'm %d years old.", name, age)

}

print(hello)("John", 25)
// Output: Fungsi utama.hello mendapat 2 hujah: Hello, nama saya John dan saya berumur 25 tahun.

Di atas Dalam contoh, fungsi cetakan menerima fungsi variadik sebagai parameter dan mengembalikan fungsi variadik baharu untuk melanjutkan kefungsian fungsi asal.

3. Perkara yang perlu diambil perhatian tentang fungsi parameter pembolehubah dalam Golang

Apabila menggunakan fungsi parameter pembolehubah Golang, anda perlu memberi perhatian kepada isu berikut:

  1. Dalam fungsi parameter pembolehubah Hanya ada satu parameter pembolehubah

Golang tidak menyokong definisi fungsi dengan berbilang parameter pembolehubah Contohnya, fungsi berikut akan menyebabkan ralat kompilasi:

ujian fungsi (a ... int, b ...string) {}

  1. Parameter pembolehubah mestilah parameter terakhir dalam senarai parameter fungsi

Apabila fungsi itu ditakrifkan, parameter pembolehubah mestilah Parameter terakhir dalam senarai parameter, contohnya, definisi fungsi berikut tidak sah:

ujian fungsi(a ...int, b rentetan) {}

  1. Fungsi pembolehubah menerima parameter Apabila, jenis kepingan tidak boleh digunakan

Dalam fungsi parameter pembolehubah, parameter tidak boleh ditukar terus kepada jenis kepingan. Jika anda perlu menggunakan kepingan, anda boleh menghantar parameter kepada fungsi lain:

func sliceFunc(args ...int) {

slice := make([]int, 0)
for _, v := range args {
    slice = append(slice, v)
}
// 使用slice

}

Di atas ialah Golang parameter pembolehubah Penjelasan terperinci tentang fungsi. Melalui fungsi parameter berubah, kami boleh mengendalikan bilangan parameter fungsi yang tidak pasti dengan lebih fleksibel dan mencapai kod yang lebih cekap dan elegan.

Atas ialah kandungan terperinci parameter pembolehubah 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
Artikel sebelumnya:golang failoverArtikel seterusnya:golang failover