On Tuesday, 4 August 2020 at 00:34:12 UTC+2 [email protected] wrote:
> Which at first seems like a good idea, but then unless "any" is built in
> or this becomes a well-known idiom, it won't be as self-documenting. Other
> people will have to look up the definition to see "oh, I see, this is just
> short-hand for an empty constraint".
I'm sure it would quickly become a well-known idiom, just like people know
that "error" is "interface{Error() string}" or "fmt.Stringer" is
"interface{String() string}".
Actually the current use of "interface{}" is a bit odd because it is the
only case where an interface is commonly used as an anonymous type rather
than by an identifier.
I assume that in current Go the empty interface is supposed to be an ugly
duckling to discourage its overuse, but in a world with type parameters it
will play an important role as the unbounded constraint and it should
deserve its own identifier.
And I don't think that giving it a short name would encourage more use of
the empty interface as a type for regular function parameters, because my
estimate is that people are happy to use "generics" rather than the empty
interface in function parameters when they can. Most Go programmers want to
be type safe and avoid casting.
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/a4d6050c-5e44-4849-a682-80a808d12417n%40googlegroups.com.