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

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



犯罪嫌疑人X
浏览 77回答 2
2回答

繁星点点滴滴

返回一个函数,该函数从封闭范围获取第一个值,从参数获取第二个数字。func Add(a int) func(int) int {    return func(b int) int {        return a + b    }}fmt.Println(Add(3)(5)) // prints 8这些都不是惯用的。惯用代码是3 + 5.

达令说

在 Go 中执行此操作的惯用方法是不执行此操作。Go 对性能和过程性的强调意味着像柯里化这样的功能模式是非常反惯用的。将两个数字相加的唯一惯用方法是:sum := 5 + 3您可以使用返回函数的函数来实现它func Add(val int) func(int) int {    return func (other int) int {        return val + other    }}但你不应该。它增加了复杂性并减慢了您的程序,但没有任何好处。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go