首頁 >後端開發 >Golang >Go中如何取得原始碼檔案名稱和行號?

Go中如何取得原始碼檔案名稱和行號?

Susan Sarandon
Susan Sarandon原創
2024-12-07 09:33:20950瀏覽

How Can I Get the Source Code File Name and Line Number in Go?

在Go 中擷取原始碼檔案名稱和行號

在C/C 等程式語言中,開發人員可以利用 FILELINE 取得目前原始碼檔案路徑和行號。 Go 是否提供類似的功能?

答:

當然可以。 Go 提供了一個名為 runtime.Caller 的內建函數來存取目前函數的原始碼檔案名稱和行號。

實作:

利用運行時。呼叫者,您可以使用可選的整數參數來呼叫它:

func GetSourceInfo(skip int) (string, int) {
    _, thisFile, thisLine, ok := runtime.Caller(skip)
    if !ok {
        return "", 0
    }
    return thisFile, thisLine
}

skip 參數指定呼叫堆疊向上的層數上升。例如,skip=0 將傳回目前函數的來源訊息,skip=1 將傳回目前函數呼叫者的來源訊息,依此類推。

用法範例:

import (
    "fmt"
    "runtime"
)

func main() {
    file, line := GetSourceInfo(1)
    fmt.Println("Calling function:", file, line)
}

輸出:

Calling function: /path/to/my/file.go 12

以上是Go中如何取得原始碼檔案名稱和行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn