On Sun, Feb 24, 2019 at 3:34 PM <roj...@gmail.com> wrote: > > thanks for the suggestion Burak and Jake, however embedding won't do for the > same reason as aliasing - it allows copying by value, which i want to prevent > (in my real use case foo.bar is a C pointer).
You could make it 2-layers, with the pointer embedded in a struct, and that struct embedded in another struct as a pointer. That way the C pointer would never be copied, but the pointer pointing to that would be copied. Would that work? > > https://play.golang.org/p/4BcOQTGkPiy works, and it should not (f3 := *f2 is > a no as it makes copy of f2.bar) > > On Sunday, February 24, 2019 at 10:07:05 PM UTC, Jake Montgomery wrote: >> >> On Sunday, February 24, 2019 at 4:31:10 PM UTC-5, Deomid Ryabkov wrote: >>> >>> Why can't Go resolve methods declared on the pointer receiver of the >>> destination type? >> >> >> Because that is not how the language was designed. (I'm too busy to look up >> the spec here, but it is in there.) >>> >>> >>> consider: >>> >>> [SNIP] >>> >>> (playground link: https://play.golang.org/p/v0f9pYaTJAa ) >>> >>> it fails to compile with "prog.go:25:23: f2.GetBar undefined (type Foo has >>> no field or method GetBar)" but it's not clear to me, why Foo doesn't get >>> pointer methods from *foo. >>> >> >> You could try using an embedded type to have Foo "inherit" methods from >> *foo, like this - https://play.golang.org/p/WvNj5GUjsxe. >> >> Good Luck > > -- > 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 golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- 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 golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.