type MyFunc func(int, int) int
func calc3(x, y int) int {
return x + y
}
func execTime(call MyFunc) MyFunc {
return func(int, int) int {
start := time.Now()
r := call(x, y)
fmt.Println("程序执行耗时", time.Since(start))
return r
}
}
func TestFuncLearn(t *testing.T) {
wrapper := execTime(calc3)
r := wrapper(1, 2)
fmt.Println("计算结果为", r)
fmt.Println("计算结果 2 为", calc3(1, 2))
}
执行结果..
=== RUN TestFuncLearn
程序执行耗时 125ns
计算结果为 5
计算结果 2 为 3
--- PASS: TestFuncLearn (0.00s)
PASS
请问一下问什么执行结果是 5 呢,debug 进去,x=2 ,y=3,人傻了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.