Found https://github.com/golang/go/issues/23796
On Tue, Jan 12, 2021 at 10:05 PM Henry <henry.adisuma...@gmail.com> wrote: > I remember reading some proposals about it somewhere, either here at > golang-nuts or at github. The general consensus was no, because interface > is all about behavior. Struct is for data and interface is for behavior, or > something like that if I remember it correctly. > > In your specific example, since PrintID requires only the ID field, you > can refactor it into something like this: > ``` > func Print(str string) { > fmt.Println(id) > } > > Print(x.ID) > Print(y.ID) > ``` > I hope it helps. > > Henry > On Wednesday, January 13, 2021 at 8:34:00 AM UTC+7 Dave Protasowski wrote: > >> I'm doing some due-diligence and wondering if there's any old topics >> about extending interfaces to support field sets. >> >> ie. >> type WithID interface { >> ID string >> } >> type X struct { ID string } >> type Y struct { ID string } >> func PrintID(item WithID) { >> fmt.Println(item.ID) >> } >> >> In the above the PrintID function only accepts structs with a field named >> `ID` - which X & Y satisfy. This is sort of like duck typing but with >> fields. >> >> I've found >> https://groups.google.com/g/golang-nuts/c/18gH5TR_3ZE/m/9dyyT4veBgAJ but >> I don't know the discussion the person was referencing and it seems >> specific to generics. >> >> thanks, >> dave >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "golang-nuts" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/golang-nuts/TrqgBPzyk54/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/f4dee908-b4ac-4661-9356-8850a7292c10n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/f4dee908-b4ac-4661-9356-8850a7292c10n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAEQ374%3DXGAWakqvwmjWTn55DFR4gzQKBGmZvahT-dV3jO-AcjQ%40mail.gmail.com.