/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/genmeth.go
47 строк
772 B
Mark Freeman
internal/goexperiment: delete Flags.GenericMethods
15 июн 2026, 18:21
15 июн 2026, 18:21
012d142
Код
Авторство
О чём код?
// run // Copyright 2026 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Verify that generic methods are assembled correctly. package main import "fmt" type List[E any] []E func (l List[E]) apply[P any](f func(E) P) List[P] { r := make(List[P], len(l)) for i, x := range l { r[i] = f(x) } return r } func (l List[E]) print() string { s := "" for i, x := range l { if i > 0 { s += "->" } s += fmt.Sprint(x) } return s } func main() { l := make(List[int], 3) for i := range l { l[i] = i } f := func(i int) string { return string("abc"[i]) } if r := l.apply(f).print(); r != "a->b->c" { panic(fmt.Sprintf("got %s, want a->b->c", r)) } }