動態迭代套件
問題:
具有以下背景的Go 程式員Phon 在程式員建立具有可擴展功能(加法、減法、 ETC。)。他們尋求一種方法來動態迭代計算器包中的所有方法,以簡化程式碼並輕鬆添加功能。
回應:
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中文網其他相關文章!