Accès aux informations du fichier source dans Go
Dans des langages comme C/C , les macros __FILE__ et __LINE__ permettent d'accéder facilement au fichier actuel et numéro de ligne. Go propose-t-il un mécanisme similaire ?
Réponse :
Oui, Go fournit la fonction runtime.Caller à cet effet. Il renvoie une tranche de variables uintptr pointant vers les trames de l'appelant dans la pile d'appels. La fonction fmt.Sprintf peut ensuite être utilisée pour extraire les informations sur le nom du fichier source et le numéro de ligne des images.
import ( "fmt" "runtime" ) func main() { // Get the caller function information frames := runtime.Callers(1, 2) // Extract the source file name and line number fileName, line := getFileInfo(frames[0]) fmt.Printf("Source file: %s, Line number: %d", fileName, line) } // Function to extract file name and line number from caller frame func getFileInfo(f uintptr) (string, int) { // Extract the file name frame := runtime.Frame(f) return frame.File, frame.Line }
De plus, runtime.Caller peut également fournir les informations sur le fichier source pour appeler des fonctions :
// Get the caller function information frames := runtime.Callers(2, 3) // Skip the main function and runtime.Callers // Extract the source file name and line number fileName, line := getFileInfo(frames[0]) fmt.Printf("Source file: %s, Line number: %d", fileName, line)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!