Исходники и презентации

This commit is contained in:
2025-05-23 07:26:39 +03:00
parent aa948179d5
commit 02d8430a3a
514 changed files with 13773 additions and 0 deletions

View File

@ -0,0 +1,30 @@
package main
import (
"fmt"
"reflect"
)
type CloneableMixin[T any] struct{}
func (m CloneableMixin[T]) Clone() *T {
return new(T)
}
type Data1 struct {
CloneableMixin[Data1]
}
type Data2 struct {
CloneableMixin[Data2]
}
func main() {
data1 := Data1{}
clone1 := data1.Clone()
fmt.Println(reflect.TypeOf(clone1)) // *main.Data1
data2 := Data2{}
clone2 := data2.Clone()
fmt.Println(reflect.TypeOf(clone2)) // *main.Data2
}