to illustrate what Ian wrote, with your example:

https://go2goplay.golang.org/p/YTqF-WS0m6O

func main() {
        var ps = []*Person{
                &Person{"Arthur Dent", 42},
                &Person{"Zaphod Beeblebrox", 9001},
        }
        Print(ps)  // ok.
        Printi(ps) // compilation error.
}

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Wednesday, December 23rd, 2020 at 7:02 PM, Ian Lance Taylor 
<i...@golang.org> 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.
>
> Ian
>
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> 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/CAOyqgcUALDVBWJwhHYxT6T5%3Dz2tvSKp7yMy%3DF4HSJc_uTZZKGQ%40mail.gmail.com.

-- 
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/irhuBuJMF9HLWxoYcutqmZM8aZmKAhxUEX05kKplyqZ9N8wQtZNWtP41CfTJmXpmWGfo8qkEI-27xnYGykDbAcUlSyPrDskc2lB2Q5Pt-BA%3D%40sbinet.org.

Reply via email to