在 Java 中,可以使用匿名內部類別將函數作為參數傳遞,儘管這可能很麻煩。 Go 透過函數類型和閉包提供了更直接的方法。
考慮以下Go 程式碼,它實現了一個接受整數並傳回字串值的轉換函數類型:
type convert func(int) string
值函數透過傳回整數的字串表示來滿足轉換類型:
func value(x int) string { return fmt.Sprintf("%v", x) }
quote123 函數使用轉換函數來將123轉換為字串並引用結果:
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
在main 函數中,convert 函數與轉換類型的不同實作一起使用,包括匿名函數:
result := quote123(func(x int) string { return fmt.Sprintf("%b", x) })
轉換類型確保類型安全,要求傳遞給它的所有函數都實現轉換類型。這有助於保持程式碼正確性並防止類型錯誤。
以上是Go 如何啟用將函數作為參數傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!