Zestawy metod Go - Metoda wywołania dla typu wskaźnika * T z odbiornikiem T

Udać sięspec mówi:

Zestaw metod dowolnego innego typu T składa się ze wszystkich metod z typem odbiornika T. Zestaw metod odpowiedniego typu wskaźnika * T jest zbiorem wszystkich metod z odbiornikiem * T lub T (to znaczy, że zawiera także zestaw metod T).

Rozumiem to jako: T ma swój własny zestaw metod, podczas gdy * T ma swój własny zestaw metod oraz zestaw metod T, ponieważ może wyłuskać odbiornik * T na T i wywołać metodę. Dlatego możemy wywołać jakąś metodę z odbiornikiem * T typu zmiennego T.

Postanowiłem więc zweryfikować moją logikę:

package main

import (
  "fmt"
  "reflect"
)

type User struct{}

func (self *User) SayWat() {
  fmt.Println(self)
  fmt.Println(reflect.TypeOf(self))
  fmt.Println("WAT\n")
}

func main() {
  var user User = User{}

  fmt.Println(reflect.TypeOf(user), "\n")

  user.SayWat()
}

http://play.golang.org/p/xMKuLzUbIf

Jestem trochę zmieszany. Wygląda na to, że mogę wywołać metody „z * T” na T? Mam trochę szerszy przykładhttp://play.golang.org/p/RROPMj534A, co też mnie myli. Czy wnioskowanie jest odwrotnie?

Czy czegoś mi brakuje, czy moja logika jest nieprawidłowa?

Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion