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

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

DDD
發布: 2024-11-16 20:38:03
原創
264 人瀏覽過

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

動態迭代套件

問題:

具有以下背景的Go 程式員Phon 在程式員建立具有可擴展功能(加法、減法、 ETC。)。他們尋求一種方法來動態迭代計算器包中的所有方法,以簡化程式碼並輕鬆添加功能。

回應:

Go 不提供簡單的機制內省包或動態迭代其內容。編譯器僅包含可執行檔中直接引用的函數和變數。從未被呼叫的函數將被省略。

替代解決方案:

您可以考慮建立一個包含所需類型物件的數組,而不是動態迭代套件進行操作。這允許您迭代一組預先定義的計算器操作:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板