vscode go组合无法跳转。 “Delete()”可以junp,但“Create()”则不能。 你遇到过什么大人物吗?如果您有任何解决方案,非常感谢。 演示:
import "fmt"
func main() {
a := NewNomal()
a.Create()
a.Delete()
}
func Funnn(a map[int]bool) {
a[2] = false
}
type Nomal interface {
Delete()
Create()
}
func NewNomal() Nomal {
return &Person{}
}
type Person struct {
*Per
}
type Per struct {
}
func (p *Person) Delete() {
fmt.Println("delete person")
}
func (p *Per) Create() {
fmt.Println("create per")
}
创建和删除跳转
当我在
Delete
界面中选择Nomal
时,我可以选择“转到实现”并跳转到func (p *Person) Delete()
,因为*Person
实现了Nomal
接口,因此该函数是该方法的实现。
另一方面,
*Per
没有实现Nomal
接口,因此func (p *Per) Create()
不是Create()
方法的实现。
结构体
Create
中的嵌入字段*Per
的方法Person
被提升为Person.Create
,因此Person
实现了Nomal
,而没有Create
本身的实现。
这就是你无法跳转到实现的原因:没有,并且 VS Code 没有据我所知的“跳转到升级实现”命令。