Golang 模块问题--package xxx/xxxx is not in GOROOT

Golang Module problem--package xxx/xxxx is not in GOROOT

所以这是我的目录:

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 运行 hello.go 时,终端出来是这样的:

D:\Users\eien_zheng\go\src\ppppppSample>去运行hello.go hello.go:5:2: 包 ppppppSample/newFolderOne 不在 GOROOT (C:\Go\src\ppppppSample\newFolderOne)

所以这是我的问题:

(刚接触golang,希望大家多多理解,多多包涵)

根据我对Go module的理解(可能是错误的),Go module的功能是让某种在线资源下载到目录GOPATH/pkg/mod而不是存在于 GOROOT 中。 无论您的项目在哪个目录中,如果您初始化 Go module,您的项目仍然可以从 GOPATH/pkg/mod 导入这些资源。 但是!!,在我的理解中,它仍然可以使用包系统在项目目录周围导入包,同时通过 Go module 系统导入在线资源。

当我为 hello.go 执行 (mod init) 时,它如何失去该项目的(基本包导入功能)?

使用模块路径在模块中导入包:

package main

import (
    "fmt"
    jjj "mmmmmppppp/newFolderOne"
)

...

Run it on the Playground.

|--src
    |--sample
         |--newFolder
            |-firstSample.go       (package xyz)
         |--hello.go               (package main  import(xyz "sample/newFolder")
         |--go mod                 (module sample go 1.15)        

go mod 应该引用根文件夹,这里的根文件夹是 |--sample

module sample go v1.xx

inside hello.go;

  package main
  import ( xyz "sample/newFolder")

and make sure exported functins or variables use camelCase aka starts with BlockLetters.