Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah terdapat cara untuk mengetahui melalui go cmdline atau IDE (IntelliJ) antara muka yang dilaksanakan oleh struct saya?

Adakah terdapat cara untuk mengetahui melalui go cmdline atau IDE (IntelliJ) antara muka yang dilaksanakan oleh struct saya?

PHPz
PHPzke hadapan
2024-02-09 09:30:38449semak imbas

有没有办法通过 go cmdline 或 IDE (IntelliJ) 找出我的结构实现了哪些接口?

Editor PHP Xiaoxin menjawab soalan anda Jika anda ingin tahu antara muka yang digunakan oleh struktur anda, terdapat beberapa cara untuk melakukannya. Pertama, anda boleh menggunakan alat baris arahan go cmdline untuk mencarinya. Taip "go doc -all" pada baris arahan dan tekan Enter Ia akan memaparkan semua antara muka yang dilaksanakan dalam struktur anda. Selain itu, jika anda menggunakan IntelliJ IDE, anda boleh menggunakan ciri navigasi kod yang disediakan untuk mengetahui antara muka yang struktur anda laksanakan. Hanya cari definisi struct anda dalam kod, kemudian Ctrl-klik pada nama struct dan ia akan menunjukkan kepada anda semua pelaksanaan antara muka. Semoga kaedah ini membantu anda!

Kandungan soalan

Katakan saya ada

// main.go
type Speaker interface {
  Speak()
}

type Person struct {}

func (p *Person) Speak() {
   panic("test")
}

Adakah terdapat cara untuk mengetahui antara muka yang digunakan oleh Orang, memandangkan antara muka yang lain dalam kod? Jelas sekali, Orang melaksanakan Speaker, tetapi bagaimana jika ia adalah jenis lain

type Ghost interface {
  Speak()
}

Ada dalam pakej lain?

Untuk konteks, saya melihat pangkalan kod dan sukar untuk memutuskan sama ada kaedah penerima boleh dialih keluar kerana sukar untuk mengetahui sama ada kaedah itu wujud untuk memenuhi keperluan antara muka atau hanya untuk meningkatkan fungsi. Dalam pangkalan kod kendiri saya boleh mengalih keluarnya dan melihat sama ada saya mendapat ralat pengkompil, tetapi saya tidak boleh melakukan perkara yang sama dalam perpustakaan awam.

Penyelesaian

Daripada dokumentasi goland anda boleh pergi ke satu pelaksanaan menggunakan ikon longkang yang melaksanakan atau mengatasi antara muka anda, atau anda boleh menggunakan Cmd + U untuk mencari semua pelaksanaan (dengan andaian anda sedang bekerja pada Mac). Berikut adalah pautan kepada dokumentasi:

https://www.jetbrains .com/help/go/navigating-through-the-source-code.html#go_to_implementation

Memandangkan Goland ialah IDE Go berdasarkan IntelliJ, anda sepatutnya boleh melakukan perkara yang sama. Anda mungkin perlu mengkonfigurasi ikon longkang, tetapi arahan yang sama harus berfungsi dalam IntelliJ.

Atas ialah kandungan terperinci Adakah terdapat cara untuk mengetahui melalui go cmdline atau IDE (IntelliJ) antara muka yang dilaksanakan oleh struct saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam