package main
import "fmt"
type MyInt interface {
int | ~int8 | int16 | int32 | int64
}
func getMaxNum[T MyInt](a, b T) T {
if a > b {
return a
}
return b
}
type AgeT interface {
int8 | int16
}
type NameE interface {
string
}
type User[T AgeT, E NameE] struct {
age T
name E
}
func (u *User[T, E]) GetAge() T {
return u.age
}
func (u *User[T, E]) GetName() E {
return u.name
}
func Get[T any]() T {
var t T
var ti interface{} = &t
switch v := ti.(type) {
case *int:
*v = 18
}
return t
}
type Number interface {
int64 | float64
}
func SumIntsNumbers[K comparable, V Number](m map[K]V) V {
var s V
for _, v := range m {
s += v
}
return s
}
func main() {
fmt.Println(getMaxNum(1, 2))
var u User[int8, string]
u.age = 18
u.name = "zhangsan"
age := u.GetAge()
name := u.GetName()
fmt.Println(age, name)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」