使用回调函数添加两个数字

Adding two numbers with callback funciton

以这种方式将两个数字相加的惯用方法是什么 Add(5)(3) -> 这是在 C# 中使用委托完成的,但我不确定在 Go 中正确的方法是什么,因为没有 delegate.

Return 从封闭范围获取第一个值并从参数获取第二个数字的函数。

func Add(a int) func(int) int {
    return func(b int) int {
        return a + b
    }
}

fmt.Println(Add(3)(5)) // prints 8

None 这是惯用语。惯用代码是 3 + 5.

在 Go 中惯用的做法是不这样做。

Go 对性能和过程性质的强调意味着像柯里化这样的功能模式非常重要 anti-idiomatic。将两个数字相加的唯一惯用方法是:

sum := 5 + 3

你可以用一个返回函数的函数来实现它

func Add(val int) func(int) int {
    return func (other int) int {
        return val + other
    }
}

但你不应该。它增加了复杂性并减慢了您的程序,但没有任何好处。