Go: go1.15.8 darwin/amd64
OS: MacOS 11.2.1
The program here <https://play.golang.org/p/rmnIexAGU-O> includes a type
and a method that acts on that type:
type Prefix struct {
prefix string
}
func (rec *Prefix) outputString(s string) {
fmt.Printf("%v: %v\n", rec.prefix, s)
}
Very straightforward. I expected that this would work too:
type PrefixPtr *Prefix
func (rec PrefixPtr) outputString(s string) {
fmt.Printf("%v: %v\n", rec.prefix, s)
}
But it led to:
# receiver
./receiver.go:24:6: invalid receiver type PrefixPtr (PrefixPtr is a pointer
type)
./receiver.go:30:10: prefixer.outputString undefined (type PrefixPtr has no
field or method outputString)
I understand that golfing doesn’t have implicit type conversions, and that
PrefixPtr is not the same as *Prefix, so I guess what I’m asking is twofold:
1. Why can’t receivers be a pointer type?
2. Why isn’t *Prefix considered a pointer type?
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/a6763564-8c81-444d-8feb-03d5606db1ddn%40googlegroups.com.