Di Golang, adalah mungkin untuk mendapatkan cerapan tentang fungsi pemanggil. Pertimbangkan coretan kod berikut:
func foo() { // Do something } func main() { foo() }
Timbul persoalan: bagaimana kita boleh menentukan bahawa foo telah dipanggil dari utama? Bahasa lain, seperti C#, memudahkan tugas ini menggunakan atribut seperti CallerMemberName.
Syukurlah, Golang menyediakan penyelesaian dengan fungsi runtime.Caller.
func Caller(skip int) (pc uintptr, file string, line int, ok bool)
Contoh #1: Mencetak Nama Fail Pemanggil dan Talian Nombor
package main import ( "fmt" "runtime" ) func foo() { _, file, no, ok := runtime.Caller(1) if ok { fmt.Printf("called from %s#%d\n", file, no) } } func main() { foo() }
Contoh #2: Mendapatkan Lagi Maklumat dengan runtime.FuncForPC
package main import ( "fmt" "runtime" ) func foo() { pc, _, _, ok := runtime.Caller(1) details := runtime.FuncForPC(pc) if ok & details != nil { fmt.Printf("called from %s\n", details.Name()) } } func main() { foo() }
Dengan menggunakan contoh ini, anda boleh mendapatkan cerapan dengan mudah maklumat fungsi pemanggil dalam Go.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Maklumat Fungsi Pemanggil di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!