打印变量
fmt.Printf("%T %+v %#v %v", v , v, v, v)
%+v
替换为对应实参字符串表示形式%#v
打印包括字段和限定类型名称在内的实例的完整信息%T
打印类型%s
打印字符串
panic(1) // 直接爆栈,打印执行到当前行的栈信息
debug.PrintStack() // 不爆栈,打印调用栈
当您在分析和调试复杂的程序时,无数个函数在不同的代码文件中相互调用,如果这时候能够准确地知道哪个文件中的具体哪个函数正在执行,对于调试是十分有帮助的。
func mark() {
_, file, line, _ := runtime.Caller(1)
log.Printf("%s:%d", file, line)
}
func main() {
mark()
// some code
mark()
// some code
mark()
}
计算执行时间
start := time.Now()
// 测试代码...
end := time.Now()
delta := end.Sub(start)
fmt.Printf("longCalculation took this amount of time: %s\n", delta)