.
--
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/4f42e5e9-f991-4ee7-a043-5350a62f787fo%40googlegroups.com.
I would assume it'stype MapConstraint(type K comparable, V interface{}) interface {
type map[K]V
}func F(type M MapConstraint(K, V), K comparable, V interface{}) (m M) {}Note that you are under no obligation to make use of a type-parameter if you don't need it.
On Sat, Jun 20, 2020 at 4:14 PM T L <tapi...@gmail.com> wrote:
--I mean I don't care about the element and key types of the parameter type.For a simple example, I want to define a generic function which prints the length of a container (do do some other things):func Print(type T Container) (v T) {// ... do some thingsfmt.Println(len(v))// ... do some things}
On Saturday, June 20, 2020 at 9:16:39 AM UTC-4, T L wrote:.
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.
On Saturday, June 20, 2020 at 10:21:56 AM UTC-4, Axel Wagner wrote:I would assume it'stype MapConstraint(type K comparable, V interface{}) interface {
type map[K]V
}func F(type M MapConstraint(K, V), K comparable, V interface{}) (m M) {}Note that you are under no obligation to make use of a type-parameter if you don't need it.I don't very understand this. Can a slice value be used as the argument of the F function?
type checking failed for main --On Sat, Jun 20, 2020 at 4:14 PM T L <tapi...@gmail.com> wrote:--I mean I don't care about the element and key types of the parameter type.For a simple example, I want to define a generic function which prints the length of a container (do do some other things):func Print(type T Container) (v T) {// ... do some thingsfmt.Println(len(v))// ... do some things}
On Saturday, June 20, 2020 at 9:16:39 AM UTC-4, T L wrote:.
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/4f42e5e9-f991-4ee7-a043-5350a62f787fo%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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/f841c497-8c29-4f16-a027-2c446f1a94b6o%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANrC0BjPALDX6%2BT-tCpH3aaLSLQqQb7LExCzCuzL5uPGFxgxJw%40mail.gmail.com.
On Sat, Jun 20, 2020 at 11:03 AM T L <tapi...@gmail.com> wrote:
On Saturday, June 20, 2020 at 10:21:56 AM UTC-4, Axel Wagner wrote:I would assume it'stype MapConstraint(type K comparable, V interface{}) interface {
type map[K]V
}func F(type M MapConstraint(K, V), K comparable, V interface{}) (m M) {}Note that you are under no obligation to make use of a type-parameter if you don't need it.I don't very understand this. Can a slice value be used as the argument of the F function?For that, I think you'd need the interface to be:type MapSliceConstraint(type K comparable, V interface{}) interface {
type map[K]V, []V
}I'm not quite sure how to eliminate the useless K type-param for slices, though.Note: the relevant draft design section is: https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md#type-parameters-in-type-listsHere's an almost working example:It looks like there's a bug in the type-parameter constraint checking because in the above example code, I get:type checking failed for mainprog.go2:11:39: K does not satisfy comparableThis, despite the type parameter definition literally requiring that K be comparable:func genLen(type T MapSliceConstraint(K, V), K comparable, V interface{})(collection T) int {
return len(collection)
}(example without a main() to reduce clutter: https://go2goplay.golang.org/p/1gqiYuDELuI)
--On Sat, Jun 20, 2020 at 4:14 PM T L <tapi...@gmail.com> wrote:--I mean I don't care about the element and key types of the parameter type.For a simple example, I want to define a generic function which prints the length of a container (do do some other things):func Print(type T Container) (v T) {// ... do some thingsfmt.Println(len(v))// ... do some things}
On Saturday, June 20, 2020 at 9:16:39 AM UTC-4, T L wrote:.
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/4f42e5e9-f991-4ee7-a043-5350a62f787fo%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/f841c497-8c29-4f16-a027-2c446f1a94b6o%40googlegroups.com.