ここに私のディレクトリがあります:
go
|-src
|-ppppppSample
|-newFolderOne
|-firstSample.go
|-hello.go
|-go.mod
これがhello.goの内容です
package main
import (
"fmt"
jjj "ppppppSample/newFolderOne"
)
func main() {
fmt.Println("start to test")
fmt.Println(jjj.FirstVVVV)
}
これがfirstSample.goの内容です
package newFolderOne
var FirstVVVV = "Im first SSSSSSSSSSSS"
これが私のgo.modのコンテンツです
module mmmmmppppp
go 1.15
cmd go run hello.go を指定すると、端末は次のようになりました。
D:\Users\eien_zheng\go\src\ppppppSample> go run hello.go hello.go:5:2: パッケージ ppppppSample/newFolderOne が GOROOT にありません (C:\Go\src\ppppppSample\newFolderOne)
だからここに私の質問があります:
(私はgolangの初心者なので、私の誤解を理解して許容していただければ幸いです)
Goモジュールに対する私の理解によると(おそらく間違っているかもしれません)、Goモジュールの機能により、ある種のオンラインリソースがGOROOTに存在するのではなく、ディレクトリGOPATH/pkg/modにダウンロードされるようになります。プロジェクトがどのディレクトリにあっても、Go モジュールを初期化すれば、プロジェクトは GOPATH/pkg/mod からそれらのリソースをインポートできます。しかし!!、私の理解では、パッケージシステムを使用してプロジェクトディレクトリの周りにパッケージをインポートし、その間にGoモジュールシステムによってオンラインリソースをインポートできます。
hello.go に対して (mod init) を実行すると、このプロジェクトの (基本パッケージのインポート機能) が失われるのはなぜですか?