在Go 中擷取原始碼檔案名稱和行號
在C/C 等程式語言中,開發人員可以利用 FILE 和LINE 取得目前原始碼檔案路徑和行號。 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中文網其他相關文章!