一尘不染

如何使用自定义包

go

我正在尝试在Go中创建和使用自定义包。这可能很明显,但是我找不到很多信息。基本上,我在同一个文件夹中拥有这两个文件:

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但似乎没有做任何事(没有生成文件,没有错误消息)。所以有什么想法我该怎么做?


阅读 342

收藏
2020-07-02

共1个答案

一尘不染

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

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

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

如果您的库供内部使用,则可以这样:

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

展示:

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

现在,在顶层main.go,您可以import "myproject/mylib"并且可以正常运行。

2020-07-02