I too think that T any is more readable than the overloaded type in type T 
especially if it means that I won’t have to remember when it’s Ok to drop 
type and when it’s not

On Saturday, July 25, 2020 at 4:47:17 PM UTC-5 Denis Cheremisov wrote:

> Great catch! I would say I really like it!
>
> суббота, 25 июля 2020 г. в 23:37:39 UTC+3, Carla Pfaff: 
>
>> I know it's common to have no constraints, but "[Elem any]" is even one 
>> character shorter than "[type Elem]". I rewrote the function signatures 
>> from slices.go2 in this way, and it doesn't feel painful. This already 
>> works on the go2go playground: https://go2goplay.golang.org/p/IQV5LTAIuDr
>>
>> On Saturday, 25 July 2020 at 22:22:24 UTC+2 Ian Lance Taylor wrote:
>>
>>> On Sat, Jul 25, 2020 at 11:47 AM 'Carla Pfaff' via golang-nuts 
>>> <golan...@googlegroups.com> wrote: 
>>> > 
>>> > To expand on my post: 
>>> > It would be very consistent with the structure of regular parameter 
>>> lists. Just like every parameter in a regular parameter list must have a 
>>> type (with the exception of multiple consecutive parameters having the same 
>>> type), every type parameter in a type parameter list must have a 
>>> constraint. 
>>>
>>> That is certainly true. 
>>>
>>> But it is also true, based on experiments writing generic code, that 
>>> the majority of type parameters have no constraints. That is 
>>> particularly true for type parameters of generic types. So while it 
>>> would be possible to require people to always explicitly write a 
>>> constraint, it seems painful to force people to always write something 
>>> that is almost never needed. 
>>>
>>> Note that in this way constraints on type parameters are different 
>>> from types of regular parameters. It makes no sense to speak of a 
>>> regular parameter with no type. It's entirely reasonable, even 
>>> common, to speak of a type parameter with no constraint. 
>>>
>>> Ian 
>>>
>>>
>>> > On Saturday, 25 July 2020 at 20:26:37 UTC+2 Carla Pfaff wrote: 
>>> >> 
>>> >> I just discovered the experiment to make the "type" keyword optional 
>>> in certain cases on the dev.go2go branch. The commit message says: 
>>> >> 
>>> >> --- 
>>> >> Experiment: Make "type" keyword optional in generic type declarations 
>>> when 
>>> >> it is clear that we can't have an array type declaration. This is the 
>>> case 
>>> >> when we have one the following: 
>>> >> 
>>> >> - more than one type parameter 
>>> >> - a type parameter with a constraint 
>>> >> - a trailing comma in the type parameter list 
>>> >> -- 
>>> >> 
>>> >> If the "type" keyword is not necessary if a constraint is present, 
>>> then why not make a constraint mandatory and get rid of the "type" keyword 
>>> in type parameter lists altogether? 
>>> >> 
>>> >> Before: 
>>> >> 
>>> >> func Filter[type Elem](...) 
>>> >> func Map[Elem1, Elem2](...) 
>>> >> func Max[Elem constraints.Ordered](...) 
>>> >> 
>>> >> After: 
>>> >> 
>>> >> func Filter[Elem interface{}](...) 
>>> >> func Map[Elem1, Elem2 interface{}](...) 
>>> >> func Max[Elem constraints.Ordered](...) 
>>> >> 
>>> >> "interface{}" may be a little bulky, especially it since it is 
>>> usually used for the simple cases. But if there was a short type alias for 
>>> "interface{}" like "any" it can look good: 
>>> >> 
>>> >> type any = interface{} 
>>> >> 
>>> >> func Filter[Elem any](...) 
>>> >> func Map[Elem1, Elem2 any](...) 
>>> >> func Max[Elem constraints.Ordered](...) 
>>> >> 
>>> > -- 
>>> > 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...@googlegroups.com. 
>>> > To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/d7a9fe08-73bb-487b-ba2a-6766560f3b03n%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/03b4927f-3f06-4c6d-a1f3-97dfb257ad38n%40googlegroups.com.

Reply via email to