Golang实现简单的函数运行时间装饰器

go语言没有类似语法糖的方法来调用装饰器,但是其本质原理都是相同的,其他功能都可以在基础上扩展

package main

import (
    "fmt"
    "time"
)

func T_Format(t time.Time) string {

    b := t.Format("2006-01-02 15:04:05")
    return b
}
//运行时间装饰器
func calTime(f func()) func() {
    inner := func() {
        start := time.Now().UnixNano() / 1000
        f()
        end := time.Now().UnixNano() / 1000
        fmt.Println(end - start)
    }
    return inner
}

func testtime() {
    now := time.Now()
    t := T_Format(now)
    fmt.Println(t)
}

//主函数
func main() {
    a := calTime(testtime)
    a()
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容