如何在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
表项目。
如果你的图书馆是内部使用,你可以这样做:
- 将库文件的目录放在项目的目录下。
- 在项目的其余部分,使用相对于包含该项目的工作空间的根的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 )