动态迭代包
问题:
具有以下背景的 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中文网其他相关文章!