如何将包包含在main.go中的本地目录中

时间:2019-02-13 04:27:54

标签: go

我在Windows 10中使用go版本go1.11.2 Windows / amd64

我在桌面上有一个名为“ GoPro”的文件夹,其中有 一个文件-main.go 一个文件夹-模块

“模块”文件夹包含 一个文件-Modules.go

文件夹结构

Desktop
   |------->GoPro
               |----->main.go
               |----->Models
                          |---->Models.go

main.go

// desktop/GoPro/main.go 

package main

import (
    "./Models"
)

func main() {
    Models.Printhello()
}

Models.go

// desktop/GoPro/Models

package Models

import "fmt"

func Printhello() {
    fmt.Println("Hello")
}

如果尝试运行main.go,出现以下错误,请去确认该软件包,但说未定义。

  

运行main.go

     

命令行参数

     

。\ main.go:8:2:未定义:模型

该文件夹不在GOPATH中。我只是想在main.go

的子文件夹中导入包

1 个答案:

答案 0 :(得分:0)

您可以set up $GOPATH并将库放在相对于$GOPATHuse modules的路径中。

对于模块,您可以执行以下操作:

$ tree
.
├── go.mod
├── main.go
└── mylib
    └── mylib.go

文件内容:

$ cat go.mod
module myproject.com

====

$ cat main.go 
package main

import "myproject.com/mylib"

func main() {
    mylib.Say()
}

====

$ cat mylib/mylib.go 
package mylib

import "fmt"

func Say() {
    fmt.Println("Hello from mylib")
}

P.S。使用小写字母name packages/modules