使用回调函数添加两个数字
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
}
}
但你不应该。它增加了复杂性并减慢了您的程序,但没有任何好处。
以这种方式将两个数字相加的惯用方法是什么
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
}
}
但你不应该。它增加了复杂性并减慢了您的程序,但没有任何好处。