Go의 첫 번째 주이므로 무지를 용서하십시오.). 파이썬에서 평화롭게 왔습니다. 저는 현재 더하기와 빼기가있는 간단한 계산기를 만들고 있습니다.패키지를 통해 어떻게 동적으로 반복합니까?
내 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
설명서를 살펴 보았지만이를 얻는 방법이없는 것 같습니다. 실행 순서는 중요하지 않습니다. 예를 들어 뺄셈은 더하기 전에 실행될 수 있습니다.