我是个围棋新手。我希望使用Prometheus监控功能级别,并尽量做到尽可能通用,比如spring事务性。使用面向方面的编程。我尝试了以下几点:
type BizFunc func()
func DoAndMonitor(bizFunc BizFunc) {
// monitor begin
defer func() {
// monitor end
}()
bizFunc()
}但是没有与任何函数兼容的函数类型。
所以,我想知道这是否可以在Go中实现?
发布于 2022-10-26 03:57:11
只接受func()。如果需要使用参数调用函数,请将该函数调用包装在一个匿名函数中。
定义:
type BizFunc func()
func DoAndMonitor(bizFunc BizFunc) {
// monitor begin
defer func() {
// monitor end
}()
bizFunc()
}用法:
// with no-argument function
var myFunc func()
// pass it directly
DoAndmonitorBizFunc(myFunc)
// function with arguments
var myFunc2 func(string, int)
// actual function call gets wrapped in an anonymous function
DoAndMonitorBizFunc(func() { myFunc2("hello", 1) })https://stackoverflow.com/questions/74202371
复制相似问题