首页 > 后端开发 > Golang > 正文

如何动态迭代计算器的 Go 包中的方法?

DDD
发布: 2024-11-16 20:38:03
原创
178 人浏览过

How can I dynamically iterate through methods in a Go package for a calculator?

动态迭代包

问题:

具有以下背景的 Go 程序员Python 在创建具有可扩展功能(加法、减法等)的简单计算器时遇到了冗长的问题。他们寻求一种方法来动态迭代计算器包中的所有方法,以简化代码并轻松添加功能。

响应:

Go 不提供简单的机制内省包或动态迭代其内容。编译器仅包含可执行文件中直接引用的函数和变量。从未被调用的函数将被省略。

替代解决方案:

您可以考虑创建一个包含所需类型对象的数组,而不是动态迭代包进行操作。这允许您迭代一组预定义的计算器操作:

type Calc interface {
    First(x int) int
    Second(x int) int
}

calculator := []Calc{
    &calculator.Add{},
    &calculator.Sub{},
    &calculator.Mul{},
    &calculator.Div{},
}

for _, calc := range calculator {
    x := 10
    fmt.Println(calc.First(x))
    fmt.Println(calc.Second(x))
}
登录后复制

通过使用数组,您可以迭代特定的计算器方法,而无需动态内省包。方法执行的顺序也是预先定义的。

以上是如何动态迭代计算器的 Go 包中的方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板