Soalan:
Adakah mungkin untuk mendapatkan semula nama fungsi dalam Go secara pengaturcaraan ? Contohnya, memandangkan fungsi foo(), bolehkah kita menentukan namanya menggunakan kaedah seperti GetFunctionName(foo)?
Jawapan:
Ya, adalah mungkin untuk dapatkan nama fungsi dalam Go menggunakan runtime.FuncForPC fungsi.
Penyelesaian:
Berikut ialah penyelesaian menggunakan runtime.FuncForPC:
package main import ( "fmt" "reflect" "runtime" ) func foo() {} func GetFunctionName(i interface{}) string { return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() } func main() { fmt.Println("name:", GetFunctionName(foo)) }
Penjelasan:
Dengan memanggil GetFunctionName(foo), anda akan mendapat rentetan "foo" sebagai hasilnya.
Atas ialah kandungan terperinci Bolehkah Go Mendapatkan Nama Fungsi Secara Program?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!