| 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)
 
- }
 
 
  |