如何使用自定义包

新手上路,请多包涵

我正在尝试在 Go 中创建和使用自定义包。这可能是非常明显的事情,但我找不到太多关于此的信息。基本上,我将这两个文件放在同一个文件夹中:

mylib.go

 package mylib

type SomeType struct {

}

主程序

package main

import (
    "mylib"
)

func main() {

}

当我尝试 go run main.go 时,出现此错误:

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

我尝试先运行 go build mylib.go 但它似乎没有做任何事情(没有生成文件,没有错误消息)。那么知道我该怎么做吗?

原文由 laurent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 391
2 个回答

首先,一定要阅读并理解 “如何编写 Go 代码” 文档。

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

如果它打算用于一般用途,请考虑使用所谓的 “Github 代码布局” 。基本上,您使您的库成为一个单独的 go get 表项目。

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

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

展示:

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

现在,在顶级 main.go 中,您可以 import "myproject/mylib" 并且它可以正常工作。

原文由 kostix 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于这种文件夹结构:

 main.go
mylib/
  mylib.go

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

 import (
    "./mylib"
)

原文由 laurent 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题