go-pattern-examples/gomore/28_profiles/README.md

18 lines
600 B
Markdown
Raw Normal View History

2020-04-28 17:16:13 +03:00
# 时间差模式
2020-04-28 18:14:18 +03:00
主要用来计算,一段是代码的执行时差:
2020-04-28 17:16:13 +03:00
2020-04-28 18:14:18 +03:00
`defer`后面跟的函数的参数,会被先被计算并被存储为函数本地变量
并且,当`defer`后的函数代码在整个代码块离开作用域被调用时,就会利用前面已经存储的值进行计算,这也算是一个技巧,示例如下:
2020-04-28 17:16:13 +03:00
```go
2020-04-28 18:14:18 +03:00
func YourFunction(input SomeType) error {
2020-04-28 17:16:13 +03:00
defer YourFunc(time.Now(), ....) //一定要放在函数的第一行或者你想要计算时差的代码的前面.
2020-04-28 18:14:18 +03:00
//其他代码..
//其他你想计算允许时间的函数代码
2020-04-28 17:16:13 +03:00
}
2020-04-28 18:14:18 +03:00
```