類型別名與類型定義
在 Go 中,類型聲明可以分為兩類:別名聲明和類型定義。理解這種差異對於理解類型別名(如 durWithoutMethods 和 SameAsDuration)的奇怪行為至關重要。
別名宣告
別名宣告只是為現有型別建立一個新識別碼。這個新標識符可以與原始名稱互換。例如,輸入 dur = time.Duration 會建立 time.Duration 的別名。使用 dur 和 time.Duration 宣告變數會產生相同的行為。
型別定義
相反,型別定義會建立新型別。它們從基礎類型中剝離了所有方法。這表示如果定義一個型別 type x struct { y time.Duration },x 將不會繼承任何 time.Duration 的方法。這是因為 time.Duration 是原始型別,沒有附加方法的型別。
將此應用於範例
以上是Go 中的型別別名和型別定義何時在方法繼承上有所不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!