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

Go 中的原型结构

Go 中的原型结构

Go
MMTTMM 2021-11-01 17:20:48
我的用例是,我需要在 Go 中有几个结构,它们将拥有相同签名的方法,而不必拥有所有方法。以下代码描述了要求,也代表了我当前的解决方案。type calc struct {    fn func(a, b int) int    gn func(a string) bool    name string}func add(a, b int) int {    return a + b}func bar(foo string) bool {    // do something}func sub(a, b int) int {    return a - b}func main() {    for c := range []calc{{        fn: add,        gn: bar,        name: "addition",    }, {        fn: sub,        name: "subtraction",    }} {        fmt.Printf("%s(10, 15) returned: %d\n", c.name, c.fn(10, 15))        if c.gn != nil {            c.gn(c.name)        }    }}我的问题是如何改进这段代码?在 Go 中实现这一目标的最佳方法是什么?我可以使用接口实现更好的解决方案吗?
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我已经亲自与一些人讨论过,显然我的解决方案是正确的。虽然它可以使用接口重写,但这不一定是改进。


查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

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