12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package main
- import "fmt"
- type Inf interface {
- Set(int)
- }
- type A struct {
- num int
- }
- func (a *A) Set(data int) {
- a.num = data
- }
- type B struct {
- num int
- }
- func (b *B) Set(data int) {
- b.num = data
- }
- type C interface {
- *A | *B
- Inf
- }
- type D[T C] struct {
- data T
- }
- func main() {
- d := D[*B]{
- data: &B{},
- }
- d.data.Set(10)
- fmt.Println(d.data.num)
- }
|