Open wtysos11 opened 3 years ago
今天碰到了一个比较厉害的函数
func Trace(msg string) func() { start := float64(time.Now().UnixNano() / 1e9) fmt.Printf("enter %s\n", msg) return func() { end := float64(time.Now().UnixNano() / 1e9) fmt.Printf("exit %s (%f)\n", msg, end-start) duration := end - start TraceReport(msg, duration) } }
这个函数的用法是这样子的:
func TestXXX(){ defer Trace("functionName")() }
在这个例子中,defer会优先执行Trace函数得到返回的函数值,然后等到TestXXX函数结束后再执行返回的这个函数,计算出整个函数所需要的时间。
TestXXX
今天碰到了一个比较厉害的函数
这个函数的用法是这样子的:
在这个例子中,defer会优先执行Trace函数得到返回的函数值,然后等到
TestXXX
函数结束后再执行返回的这个函数,计算出整个函数所需要的时间。