I was playing with the go2go playground, and while implementing a toy List 
type, came across a few issues (Sorry if these have been discussed before, 
my cursory search didn't turn out to find anything). Given the type

type List[T any] []T

1. The current go2go implementation does not allow one to do this:

func ToList[T any](v []T) List[T] {
        return List(v)
}

with the error: List(v) is not a type

Is this a bug, shortcoming of the current implementation, or by design? 
This would be a deal breaker if type-casting doesn't work for generics.

2. It seems impossible to implement a type-safe Map function. The following 
code:

func (l List[T]) Map(f func[U any](v T) U) List[U] {
    return nil
}

will not compile, with the error: function type cannot have type parameters
Judging by the error message this seems to be by design, but it will 
significantly reduce the usability of generics for any transformation 
method. What is the reasoning behind this limitation?

Thanks,

-- 
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/2aa1c2cb-e7bc-438e-81a9-e4a2904af21cn%40googlegroups.com.

Reply via email to