為什麼介面對於自訂類型的錯誤方法會回傳「bad error」?
在 Go 中,可以使用介面為型別定義方法。當物件實作介面時,它為該介面定義的每個方法提供實作。
考慮以下範例:
type T int func (t T) Error() string { return "bad error" } func main() { var v interface{} = T(5) fmt.Println(v) // Output: "bad error" }
在此範例中,定義了 Error 方法對於型別 T。但是,當使用 fmt.Println 列印值 v 時,輸出是「錯誤錯誤」而不是預期的整數值 5。要理解此行為,讓我們參考fmt 包文檔:
這種情況下使用 fmt.Println 函數,相當於 fmt.Printf("%v", v)。以下是對所發生情況的解釋:
要列印 v 的整數值,可以使用 fmt.Printf("%d",v)。
以上是當類型實作「error」介面時,為什麼「fmt.Println」會列印「錯誤錯誤」而不是整數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!