On Thu, Aug 20, 2020 at 10:54 PM Ian Lance Taylor <[email protected]> wrote:
>
> On Thu, Aug 20, 2020 at 8:52 PM burak serdar <[email protected]> wrote:
> >
> > On Thu, Aug 20, 2020 at 8:22 PM Jan Mercl <[email protected]> wrote:
> > >
> > > On Fri, Aug 21, 2020 at 2:28 AM Ian Lance Taylor <[email protected]> wrote:
> > >
> > > > To simplify the common case of a type parameter that has
> > > > no constraints, we will introduce a new predeclared identifier “any”
> > > > as an alias for “interface{}”.
> > >
> > > Anyone can write the declaration
> > >
> > > type any = interface{}
> > >
> > > today and possibly some people already do that. But in my opinion that
> > > would, so far, not pass a code review within the Go project per se.
> > > (It would definitely not pass my code review.)
> > >
> > > I don't like it and It makes me sad it is being proposed to become
> > > officially blessed.
> >
> > Is "any" truly an alias for interface{}, or is it only a constraint? I
> > agree with Jan's point that replacing interface{} with "any" might
> > unintentionally encourage its use.
>
> Our intent here is that "any" will be available for all code. Yes, we
> wouldn't do it if it weren't for its use as a type constraint. But if
> we are going to do it for type constraints, there seems to be little
> benefit to restricting it to only work as a type constraint.
What worries me is code like this:
func f() any {
int *i
return i
}
func main() {
if f()==nil {
...
}
}
Use of "any" makes it look like f returns an *int and f() is nil, but
it is not, because "any" is interface{}.
I think "any" as a constraint is useful, like "comparable", but "any"
as a type is misleading.
>
> This is not, of course, a new idea, even in the absence of generics.
> For example, https://golang.org/issue/33232. (My comment there was
> that we would use interface{} less if we had generics, but of course
> when we require type constraints then we actually wind up using it
> somewhat more.)
>
> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/CAMV2Rqqr0AGtcJEJhv0UPtO8vgPShfs%3DxdBj5U7Wgjtyb%2BMoZg%40mail.gmail.com.