所以这是我的目录:
go
|-src
|-ppppppSample
|-newFolderOne
|-firstSample.go
|-hello.go
|-go.mod
Run Code Online (Sandbox Code Playgroud)
这是 hello.go 的内容
package main
import (
"fmt"
jjj "ppppppSample/newFolderOne"
)
func main() {
fmt.Println("start to test")
fmt.Println(jjj.FirstVVVV)
}
Run Code Online (Sandbox Code Playgroud)
这是firstSample.go的内容
package newFolderOne
var FirstVVVV = "Im first SSSSSSSSSSSS"
Run Code Online (Sandbox Code Playgroud)
这是我的 go.mod 的内容
module mmmmmppppp
go 1.15
Run Code Online (Sandbox Code Playgroud)
当给它 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模块的功能是让某种在线资源下载到GOPATH/pkg/mod目录中,而不是存在于GOROOT中。无论您的项目位于哪个目录,如果您初始化 Go 模块,您的项目仍然可以从 GOPATH/pkg/mod 导入这些资源。但是!!,根据我的理解,它仍然可以使用包系统在项目目录周围导入包,同时通过Go模块系统导入在线资源。
当我为 hello.go 执行 (mod init) 时,它会丢失该项目的(基本包导入功能)吗?