以这种方式添加两个数字的惯用方法是什么 Add(5)(3)-> 这是在 C# 中使用委托完成的,但我不确定在 Go 中正确的方法是什么,因为没有delegate.
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
返回一个函数,该函数从封闭范围获取第一个值,从参数获取第二个数字。
func Add(a int) func(int) int {
return func(b int) int {
return a + b
}
}
fmt.Println(Add(3)(5)) // prints 8
这些都不是惯用的。惯用代码是3 + 5.
达令说
TA贡献1821条经验 获得超6个赞
在 Go 中执行此操作的惯用方法是不执行此操作。
Go 对性能和过程性的强调意味着像柯里化这样的功能模式是非常反惯用的。将两个数字相加的唯一惯用方法是:
sum := 5 + 3
您可以使用返回函数的函数来实现它
func Add(val int) func(int) int {
return func (other int) int {
return val + other
}
}
但你不应该。它增加了复杂性并减慢了您的程序,但没有任何好处。
- 2 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消