ker*_*azi 2 parameters func go

主要问题是“是否可以将任何类型的 func 作为参数以及如何传递?”。我正在学习 Go 并希望像这样制作我自己的异步包装函数:

func AsyncFunc(fn func(), args ...interface{}) chan bool {
    var done chan bool;

    go func() {
        fn(args...);
        done <- true;
    }();

    return done;
}

并称之为:

max := func(a, b int) int {
    //some hard code what will be goroutine
    if a > b {return a};
    return b;
}

done := AsyncFunc(max, 5, 8);
//some pretty code
<- done;

PS如果我的英语不好,对不起...

Edit1:我知道它是无用的、缓慢的和危险的。这只是我想要实现的疯狂想法。