这是我使用 Go 的第一周,所以请原谅我的无知;)。我从 Python 平静下来。我目前正在使用加法和减法构建一个简单的计算器。
我的addition.go文件看起来像这样:
package calculator
type Add struct{}
func (h Add) First(x int) int {
x += 5
return x
}
func (h Add) Second(x int) int {
x += 10
return x
}
我的布局subtraction.go文件看起来非常相似,addition.go和未来的功能,如multiplication.go与division.go将类似于。要运行这些,我有:
package main
import (
"fmt"
"github.com/mytester/calculator"
)
type Calc interface {
First(x int) int
Second(x int) int
}
func main() {
x := 10
var i Calc
a := &calculator.Add{}
i = a
i.First(x)
fmt.Println(x)
fmt.Println(i.First(x))
fmt.Println(i.Second(x))
fmt.Println("Next method...")
b := &calculator.Sub{}
i = b
fmt.Println(x)
fmt.Println(i.First(x))
fmt.Println(i.Second(x))
// iterate through the rest of my calculator methods
}
这看起来很冗长,尤其是当我添加越来越多的功能(如乘法等)时。有没有办法找到我的计算器的所有方法,然后遍历所有方法?我已经查看了reflect文档,但似乎没有办法得到这个。它们运行的顺序无关紧要......例如,减法可以在加法之前运行。
HUH函数
相关分类