如何在golang中使用自定义的包?

我正在尝试在Go中创build和使用自定义的包。 这可能是非常明显的,但我无法find有关这方面的信息。 基本上,我有这两个文件在同一个文件夹中:

mylib.go

package mylib type SomeType struct { } 

main.go

 package main import ( "mylib" ) func main() { } 

当我尝试go run main.go ,我得到这个错误:

 main.go:4:2: import "mylib": cannot find package 

我试图运行go build mylib.go第一,但它似乎没有做任何事情(没有文件生成,没有错误信息)。 所以任何想法我怎么能做到这一点?

首先,请务必阅读并理解“如何编写Go代码”文档。

实际的答案取决于你的“自定义包”的性质。

如果它的目的是通用的,考虑采用所谓的“Github代码布局” 。 基本上,你让你的图书馆一个单独的go get表项目。

如果你的图书馆是内部使用,你可以这样做:

  1. 将库文件的目录放在项目的目录下。
  2. 在项目的其余部分,使用相对于包含该项目的工作空间的根的path来引用该库。

展示:

 src/ myproject/ mylib/ mylib.go ... main.go 

现在,在顶级的main.go ,你可以import "myproject/mylib" ,它可以正常工作。

对于这种文件夹结构:

 main.go mylib/ mylib.go 

最简单的方法是使用这个:

 import ( "./mylib" ) 

另一个scheme
添加src/myproject到$ GOPATH。

然后import "mylib"将编译。

对于在GitHub上托pipe的项目,人们通常会这样做:

 github.com/ laike9m/ myproject/ mylib/ mylib.go ... main.go 

mylib.go

 package mylib ... 

main.go

 import "github.com/laike9m/myproject/mylib" ... 

包lexico

 type Analizador struct { } func main() { } 

恩拉克包主

 import ( "github.com/user/lexico )