golang: 一个闭包的有趣使用

来源

https://colobu.com/gotips/001.html

示例

package main

import "time"

func TimeTrack() func() {
	pre := time.Now()

	return func() {
		println(time.Since(pre).Milliseconds())
	}
}
func main() {
	defer TimeTrack()()
	time.Sleep(1024 * time.Millisecond)
}

原理解释

其实就是关于闭包的使用

通过两次闭包来实现变量的传递使用.

  1. TimeTrack​: 初始化时, 闭包内pre 初始化
  2. defer TimeTrack()()​: 在函数执行完毕后, 调用闭包, 获得时间差.
posted @   pDJJq  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示