为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
犯罪嫌疑人X 2022-12-13 16:32:42
以这种方式添加两个数字的惯用方法是什么 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.


查看完整回答
反对 回复 2022-12-13
?
达令说

TA贡献1821条经验 获得超6个赞

在 Go 中执行此操作的惯用方法是不执行此操作。


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


sum := 5 + 3

您可以使用返回函数的函数来实现它


func Add(val int) func(int) int {

    return func (other int) int {

        return val + other

    }

}

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


查看完整回答
反对 回复 2022-12-13
  • 2 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信