Go 方法集:可以在常規型別上呼叫指標型別的方法嗎?
Go 規範將類型的方法集定義為接收器類型與該類型相符的所有方法。然而,它也指出指標類型(*T)的方法集既包括其自身的方法,也包括其對應的非指標類型(T)的方法。這就提出了一個問題:你可以在常規型別上呼叫指標類型的方法嗎?
儘管規範有這樣的措辭,但答案是否定的。您不能直接呼叫設計為使用常規類型 (T) 在指標類型 (*T) 上呼叫的方法。這是因為方法呼叫必須與接收者類型完全匹配。
但是,編譯器提供了一個巧妙的解決方法。它會自動取消引用常規類型接收器並呼叫指標類型方法。這相當於手動取消引用接收者並明確呼叫指標類型方法: user.SayWat() 變成 (&user).SayWat().
以上是Go 在指標類型上設定的方法可以用常規型別呼叫嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!