Dynamisches Durchlaufen eines Pakets
Problem:
Ein Go-Programmierer mit einem Hintergrund in Python stößt beim Erstellen eines einfachen Rechners mit erweiterbaren Funktionen (Addition, Subtraktion usw.) auf Ausführlichkeit. Sie suchen nach einer Möglichkeit, alle Methoden in ihrem Rechnerpaket dynamisch zu durchlaufen, um Code zu vereinfachen und Funktionen mühelos hinzuzufügen.
Antwort:
Go bietet keinen einfachen Mechanismus um Pakete zu überprüfen oder deren Inhalte dynamisch zu durchlaufen. Der Compiler nimmt nur Funktionen und Variablen in die ausführbare Datei auf, auf die direkt verwiesen wird. Funktionen, die nie aufgerufen werden, werden weggelassen.
Alternative Lösung:
Anstatt das Paket dynamisch zu durchlaufen, können Sie erwägen, ein Array mit Objekten der gewünschten Typen zu erstellen zu operieren. Dadurch können Sie über einen vordefinierten Satz von Rechneroperationen iterieren:
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)) }
Durch die Verwendung eines Arrays können Sie bestimmte Rechnermethoden durchlaufen, ohne das Paket dynamisch überprüfen zu müssen. Die Reihenfolge, in der die Methoden ausgeführt werden, wird ebenfalls im Voraus festgelegt.
Das obige ist der detaillierte Inhalt vonWie kann ich Methoden in einem Go-Paket für einen Taschenrechner dynamisch durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!