我试图在Go中定义一个通用函数,它接受具有特定字段的值,例如ID int
.我try 过几种方法,但似乎都不管用.下面是我try 过的一个例子.
package main
import (
"fmt"
)
func Print[T IDer](s T) {
fmt.Print(s.ID)
}
func main() {
Print(Person{3, "Test"})
}
type IDer interface {
~struct{ ID int }
}
type Person struct {
ID int
Name string
}
type Store struct {
ID int
Domain string
}
这里是playground 链接:https://gotipplay.golang.org/p/2I4RsUCwagF
在上面的例子中,我想保证传递给Print
函数的每个值都有一个属性ID int
,该属性也可以在函数中访问.有没有什么方法可以实现这一点,而不用在接口(例如GetID() int
)中定义方法?