Комбинация Vscode go не может перейти

Комбинация Vscode go не может перейти. «Delete()» может дезактивироваться, а «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")
}

Создать и удалить прыжок

Что вы подразумеваете под словом «прыгнуть»?

eik 07.05.2024 10:03

«прыжок» означает команду + стрелка влево.

zhiwei dong 07.05.2024 10:06
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
1
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда я выбираю 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 нет команды «перейти к расширенным реализациям», о которой я знаю.

Большое спасибо за ваш ответ. Если нет, то было бы жаль. Вы можете найти его на Голанде.

zhiwei dong 08.05.2024 04:20

Вы можете перейти к реализации в Golang, но не от реализации к спецификации метода для Create. Так что это похоже. Пожалуйста, отметьте ответ как принятый или полезный, если он был полезен. Спасибо.

eik 08.05.2024 10:03

Другие вопросы по теме