Why will interfaces be more idiomatic once generics lands? It remains to be seen I guess but I could very well see the other way become the idiom.
On Wed, 23 Dec 2020, 21:20 wilk, <w...@flibuste.net> wrote: > On 23-12-2020, Ian Lance Taylor wrote: > > On Wed, Dec 23, 2020 at 9:54 AM wilk <w...@flibuste.net> wrote: > >> > >> https://go2goplay.golang.org/p/fTW3hJYNgfU > >> > >> type Stringer interface { > >> String() string > >> } > >> > >> Print[T Stringer](s []T) > >> > >> Print(s []Stringer) > >> > >> Both forms works. > >> How to prevent double way to do the same things that can be confusing ? > > > > Both forms work but they mean two different things. > > > > Print(s []Stringer) takes a slice of the type Stringer. > > > > Print[T Stringer](s []T) takes a slice of some type T, where T > > implements Stringer. > > > > For example, if MyInt implements Stringer, and I have a []MyInt, then > > I can call Print[T Stringer](s []T) but I can't call Print(s > > []Stringer), because a []Stringer is not a []MyInt. > > I understand the differences. But i'm affraid someone who never used > Go before will use type parameters instead of interface which is more > idiomatic i think. > I mean it will be difficult to say, you could use type parameters but > you should use interface, or something like that... > I'm speaking about ease of learn Go2. > > -- > wilk > > -- > 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/rs08pp%24p8m%241%40ciao.gmane.io > . > -- 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/CAKOF694%2B7VE_H2JqNZuT1iHZhntAdkNxqwkntsOOTtbQKUEKfQ%40mail.gmail.com.