發現Go 套件中的方法
在Go 中,正如您在第一週所注意到的,沒有直接的動態迭代機制透過包的方法。與 Python 等語言不同,Go 不會內省包的內容。
這個設計決策源自於 Go 嚴格的編譯過程,該過程僅保留可執行檔中明確引用的函數和變數。任何未使用的函數或變數都會在編譯時被丟棄。因此,迭代可能不完整的符號集變得毫無意義,並且不會被實現。
替代方法
要規避此限制,請考慮建立一個包含您想要操作的類型。例如,在計算器場景中,您可以定義一個陣列:
var calculators = []*calculator.Calc{&calculator.Add{}, &calculator.Sub{}, &calculator.Mult{}, ...}
然後您可以迭代此數組,呼叫每個 Calculator.Calc 物件上的 First 和 Second 方法。雖然這種方法可能看起來有點冗長,但它允許您迭代程式已知的完整方法集。
以上是如何迭代Go包中的方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!