Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa saya mendapat ralat semasa membuat modul adik-beradik dalam Go?

Mengapa saya mendapat ralat semasa membuat modul adik-beradik dalam Go?

王林
王林ke hadapan
2024-02-09 12:57:091062semak imbas

为什么在 Go 中创建同级模块时会出现错误?

Dalam bahasa Go, ralat semasa membuat modul adik-beradik adalah masalah biasa. Punca masalah ini biasanya disebabkan oleh konflik ruang nama dalam modul. Apabila kami mencipta dua modul dengan nama yang sama dalam direktori yang sama, pengkompil Go akan menganggap ini sebagai konflik, menyebabkan ralat. Penyelesaian kepada masalah ini ialah meletakkan modul ini dalam direktori yang berbeza untuk mengelakkan konflik ruang nama. Selain itu, kami juga boleh menggunakan alias pakej untuk menyelesaikan konflik modul. Dengan memberikan salah satu modul alias, anda boleh mengelakkan konflik ruang nama dan berjaya mencipta modul adik-beradik. Dalam pembangunan sebenar, kita perlu memberi perhatian kepada penyeragaman penamaan modul dan mengelakkan modul dengan nama yang sama untuk mengelakkan ralat ini.

Kandungan soalan

Ini sistem fail saya:

Go/
  HelloWorld/
    go.mod
    go.sum
    hello.go
  GoQuote/
    go.mod

Saya memasang modul dan ini HelloWorld/go.mod saya:

module example/hello

go 1.21.3

require (
    golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
    rsc.io/quote/v4 v4.0.1
    rsc.io/sampler v1.3.0 // indirect
)

dan go.sum:

golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
rsc.io/quote/v4 v4.0.1 h1:i/LHLEinr65wwTCqlP4OnMoMWeCgnFIZFvifdXNK+5M=
rsc.io/quote/v4 v4.0.1/go.mod h1:w/DafQky66grMesu3uPhdDMS3knhBippwwemZtMOyCI=
rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

Ralatnya adalah seperti berikut: 无法导入rsc.io/quote/v4(在GOROOT或GOPATH中找不到包“rsc.io/quote/v4”)compilerBrokenImport dan undefined: quotecompilerUndeclaredName

Tiada ralat berlaku sehingga saya mencipta direktori GoQuote dan menjalankan arahan go mod init example.com/GoQuote. Saya baru menggunakan Go (jam pertama!) dan tidak tahu apa masalahnya.

Saya cuba menyimpan semua fail (saya dalam kod VS) tetapi tidak berjaya.

Penyelesaian

Nampaknya masalahnya ialah struktur sistem fail...jika saya menukarnya kepada

Go/
  go.mod
  go.sum
  hello.go
GoQuote/
  go.mod

Maka tiada ralat.

Atas ialah kandungan terperinci Mengapa saya mendapat ralat semasa membuat modul adik-beradik dalam Go?. 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