Embed interface is common practice. There is no extra cost in <T>F. It is more readable because we can identify generic whenever we see <>. We must use more time to discover a generic using F(T), it looks like a function. And it solve problems like embed types. Most people just don't get use to it now.
On Tuesday, June 23, 2020 at 10:05:01 AM UTC+8, Ian Lance Taylor wrote: > > On Mon, Jun 22, 2020 at 6:19 PM 移库海牙客 <redst...@gmail.com <javascript:>> > wrote: > > > > I agree the syntax should be more readable and easier to understand. But > I think the current syntax is less readable. > > For example: > > > > type I2 interface { > > (I1(int)) > > } > > > > > > type S2 struct { > > (S1(int)) > > } > > > > > > We must use redundant brackets to keep the syntax right. I don't think > this is readable and syntax consistent. > > > > The new syntax begin with < .It suggests the next name is generic. I > think that's more readable. > > I agree that the syntax for embedding an instantiated type is not great. > > But I also think that embedding an instantiated type is a an unusual > thing to do. It's not so bad if the syntax for an unusual operation > doesn't look that great. It will rarely be seen. > > Is there some reason to think that people will often want to embed > instantiated types? > > Ian > > > > On Tuesday, June 23, 2020 at 1:53:56 AM UTC+8, Ian Lance Taylor wrote: > >> > >> On Mon, Jun 22, 2020 at 10:09 AM James L <jamesl...@gmail.com> wrote: > >> > > >> > Have you read other thread which have been answered many times? > >> > >> In fairness, this idea is different, because the type comes first. > >> Since the '<' character will always be the start of an expression, I > >> think it may be unambiguous. I think this has been suggested before > >> also, though I'm not sure where. > >> > >> I don't personally like this syntax because it seems to put the cart > >> before the horse. In a function call, I would expect to see the Print > >> function with a type argument int. This flips the order so that we > >> see int first, then we see that we are talking about the Print > >> function. Even if it could work syntactically, it seems to me to be > >> less readable. > >> > >> The goal in any syntax suggestion should be more than just "this might > >> work." It should be "this is more readable and easier to understand." > >> And personally I don't think this specific suggestion meets that > >> goal. > >> > >> Thanks for the comment, though. > >> > >> Ian > >> > >> > >> > On Tue, 23 Jun 2020 at 12:46 AM, <redst...@gmail.com> wrote: > >> >> > >> >> I read the new generic draft. And I know F<T>,F[T],F《T》 is > discarded. I think put the type paremeter in front of the function name may > be better. No ambiguous and more readable code. > >> >> > >> >> func Print(type T)(s []T) { > >> >> > >> >> } > >> >> > >> >> Print(int)([]int{1, 2, 3}) > >> >> > >> >> func <type T>Print(s []T) { > >> >> > >> >> } > >> >> > >> >> <int>Print([]int{1, 2, 3}) > >> >> > >> >> > >> >> > >> >> -- > >> >> 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 golan...@googlegroups.com. > >> >> To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/c55ab443-4333-4def-9d9c-6657463a4a75o%40googlegroups.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 golan...@googlegroups.com. > >> > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAHo5hB6-myagSyixYPfghVYBE3DUpQMYSj88%2BjB74hbJvzQApQ%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 golan...@googlegroups.com <javascript:>. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/9297b725-7fc2-4e23-bd55-763d9bf691f7o%40googlegroups.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/bf0bf663-4e7e-44ae-a0f2-a019fdb78f23o%40googlegroups.com.