golang 结构体泛型

发布时间 2023-05-30 10:24:46作者: vx_guanchaoguo0
package main

import "fmt"

type students struct {
	Name string
	Age  string
}
type teacher struct {
	Name  string
	Phone string
}

type School interface {
	students | teacher
}

func testInterface[T School](s T) {
	fmt.Println(s)
}

func testNoInterface[T students | teacher](s T) {
	fmt.Println(s)
}

func testAny[T any](s T) {
	fmt.Println(s)
}

func main() {
	a := students{Name: "aid"}
	b := teacher{Name: "bid"}

	testInterface(a)
	testNoInterface(a)
	testAny(a)
	testAny(b)
}