39 lines
535 B
Go
39 lines
535 B
Go
package main
|
|
|
|
import "github.com/goplus/lib/c"
|
|
|
|
type T[M, N any] struct {
|
|
m M
|
|
n N
|
|
}
|
|
|
|
func (t *T[M, N]) Demo() {
|
|
println(t.m, t.n)
|
|
}
|
|
|
|
func (t T[M, N]) Info() {
|
|
println(t.m, t.n)
|
|
}
|
|
|
|
type I interface {
|
|
Demo()
|
|
}
|
|
|
|
type K[N any] [4]N
|
|
|
|
//llgo:link (*K).Advance llgo.advance
|
|
func (t *K[N]) Advance(n int) *K[N] {
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
var a any = T[string, int]{"a", 1}
|
|
println(a.(T[string, int]).m)
|
|
var i I = &T[string, int]{"hello", 100}
|
|
i.Demo()
|
|
|
|
k := &K[int]{1, 2, 3, 4}
|
|
println(c.Advance(k, 1))
|
|
println(k.Advance(1))
|
|
}
|