首頁 >後端開發 >Golang >如何動態迭代計算器的 Go 套件中的方法?

如何動態迭代計算器的 Go 套件中的方法?

DDD
DDD原創
2024-11-16 20:38:03261瀏覽

How can I dynamically iterate through methods in a Go package for a calculator?

動態迭代套件

問題:

具有以下背景的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn