golang 获取当前文件路径


import (
	"errors"
	"runtime"
)

func CurrentFile() string {
	_, file, _, ok := runtime.Caller(1)
	if !ok {
		panic(errors.New("Can not get current file info"))
	}
	return file
}

func Caller 

func Caller(skip int) (pc uintptr, file string, line int, ok bool)

Caller reports file and line number information about function invocations on the calling goroutine's stack. The argument skip is the number of stack frames to ascend, with 0 identifying the caller of Caller. (For historical reasons the meaning of skip differs between Caller and Callers.) The return values report the program counter, file name, and line number within the file of the corresponding call. The boolean ok is false if it was not possible to recover the information.

0 表示调用runtime.Caller()所在的位置,1表示runtime.Caller()所在函数的调用位置,依此类推

所以写死1则始终得到的是调用CurrentFile()所在的位置,此函数能在任意调用

你可能感兴趣的:(go)