下图 接口有泛型,方法没有泛型, RealName 是实现了 Name 接口的
![image.png](https://static.golangjob.cn/230302/67ee27d87498ba6ed24fedaf7cdf2164.png)
为什么 给Name接口中的Say方法使用泛型传参,RealName 就没有实现 Name 接口了
![image.png](https://static.golangjob.cn/230302/2939be68d68a091bc041e5aecb46e18d.png)
你这个是对的吧,我运行成功了,估计是编译器版本太旧没提示出来吧。
```go
package main
import (
"fmt"
)
func main() {
var s Name[int] = RealName[int]{}
s.Say(123)
}
type Name[T any] interface {
Say(t T)
}
type RealName[T any] struct {
}
func (r RealName[T]) Say(t T) {
fmt.Println(t)
}
```
#1
更多评论
![image.png](https://static.golangjob.cn/230303/fbcae9aa08b0b80fdcff13f880682238.png)
运行成功了,确实是编译器的问题
我这边使用的IDE是 GoLand 2021.3.2
大佬是使用哪个版本的呀
#2
<a href="/user/wong" title="@wong">@wong</a>
我的是2022.2,也没有正确提示。好久没更新了,也不晓得最新版咋样。最近Go1.20也发布了,也有一些新特性,我的Goland上还有红线报错提示呢。不过你上面这个错误提示是没了,但是左侧也没有向上的结构体满足接口的图标。
![搜狗截图20230303135058.png](https://static.golangjob.cn/230303/a6bcf0d9ef3b5d08365919ac2664ff43.png)
#3