我来自具有一流功能支持的JavaScript。例如,您可以:

  • 将一个函数作为参数传递给另一个函数
  • 从函数返回函数。

  • 有人可以给我一个例子,说明我将如何在Go中执行此操作吗?

    最佳答案

    Go Language and Functional Programming可能会有所帮助。从此博客文章中:

    package main
    import fmt "fmt"
    type Stringy func() string
    func foo() string{
            return "Stringy function"
    }
    func takesAFunction(foo Stringy){
        fmt.Printf("takesAFunction: %v\n", foo())
    }
    func returnsAFunction()Stringy{
        return func()string{
            fmt.Printf("Inner stringy function\n");
            return "bar" // have to return a string to be stringy
        }
    }
    func main(){
        takesAFunction(foo);
        var f Stringy = returnsAFunction();
        f();
        var baz Stringy = func()string{
            return "anonymous stringy\n"
        };
        fmt.Printf(baz());
    }
    

    作者是博客所有者:Dethe Elza(不是我)

    09-25 21:27