Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Dapatkan Penunjuk Fungsi daripada Nama Fungsi dalam Go?

Bagaimanakah Saya Boleh Dapatkan Penunjuk Fungsi daripada Nama Fungsi dalam Go?

Barbara Streisand
Lepaskan: 2024-12-03 07:22:10
asal
423 orang telah melayarinya

How Can I Retrieve Function Pointers from Function Names in Go?

Mengambil Penunjuk Fungsi daripada Nama Fungsi dalam Go

Banyak bahasa pengaturcaraan membenarkan akses kepada penunjuk fungsi daripada perwakilan rentetan nama fungsi. Keupayaan ini amat berguna untuk teknik pengaturcaraan meta, seperti memilih fungsi secara dinamik untuk pelaksanaan.

Penyelesaian dalam Go

Tidak seperti beberapa bahasa lain, Go secara asli menyokong penunjuk fungsi sebagai yang pertama -nilai kelas, menghapuskan keperluan untuk mekanisme tambahan untuk mendapatkannya daripada nama fungsi. Sebaliknya, fungsi boleh dihantar terus sebagai argumen kepada fungsi lain.

Sebagai contoh, pertimbangkan kod berikut:

package main

import "fmt"

func someFunction1(a, b int) int {
    return a + b
}

func someFunction2(a, b int) int {
    return a - b
}

func someOtherFunction(a, b int, f func(int, int) int) int {
    return f(a, b)
}

func main() {
    fmt.Println(someOtherFunction(111, 12, someFunction1))
    fmt.Println(someOtherFunction(111, 12, someFunction2))
}
Salin selepas log masuk

Dalam kod ini, someOtherFunction menerima penunjuk fungsi sebagai argumen dan memanggil fungsi yang ditentukan dengan hujah yang disediakan.

Menggunakan Peta untuk Fungsi Dinamik Pemilihan

Dalam kes di mana pemilihan fungsi bergantung pada maklumat masa jalan, anda boleh menggunakan peta untuk mengaitkan nama fungsi dengan penunjuk fungsi yang sepadan. Contohnya:

m := map[string]func(int, int) int{
    "someFunction1": someFunction1,
    "someFunction2": someFunction2,
}

...

z := someOtherFunction(x, y, m[key])
Salin selepas log masuk

Ini membolehkan anda mendapatkan semula dan melaksanakan fungsi secara dinamik berdasarkan kunci yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Penunjuk Fungsi daripada Nama Fungsi dalam Go?. 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