Vscode go组合无法跳转

问题描述 投票:0回答:1

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")
}

创建和删除跳转

go vscode-extensions
1个回答
0
投票

当我在

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 没有据我所知的“跳转到升级实现”命令。

© www.soinside.com 2019 - 2024. All rights reserved.