Go 如何进行短/相对导入
是否可以在Go代码中进行相对导入?我读了很多例子,但我真的不明白怎么做。例如,我有一个项目Go 如何进行短/相对导入,go,import,Go,Import,是否可以在Go代码中进行相对导入?我读了很多例子,但我真的不明白怎么做。例如,我有一个项目app和一个子包utils app main.go utils utils.go utils.go: package utils import "fmt" func TestFunc() { fmt.Print("I'm a TestFunc") } 有没有一种方法可以只使用import“/utils”或import”ap
app
和一个子包utils
app
main.go
utils
utils.go
utils.go:
package utils
import "fmt"
func TestFunc() {
fmt.Print("I'm a TestFunc")
}
有没有一种方法可以只使用import“/utils”
或import”app/utils
导入此包,而不使用像import“github.com/hithubuser/app/utils”这样的所有路径
如果没有办法,您如何处理嵌套包?您是为所有导入编写完整路径还是避免创建完整路径?通常导入路径在$GOPATH/src
之后开始,请参阅
假设您有目录结构:
$GOPATH/src/github.com/hithubuser/app/utils
# your import path is 'github.com/hithubuser/app/utils'
您是为所有导入编写完整路径,还是避免创建完整路径
是的,通常使用完全导入,因为它使您能够以go库的形式分发代码。这样您就可以开发可重用代码,并根据需要将其导入任何项目中,或者将其发布到go社区
假设您有一个独立的项目,没有引用任何其他Go项目,并且您是以二进制文件而不是Go库的形式分发的。然后您可以使用类似的内容(虽然它不常用/不推荐)
只需在$GOPATH/src
像git clone github.com/hithubuser/app
$GOPATH/src/app/utils
# then import path is app/utils
通常导入路径在$GOPATH/src
之后开始,请参阅
假设您有目录结构:
$GOPATH/src/github.com/hithubuser/app/utils
# your import path is 'github.com/hithubuser/app/utils'
您是为所有导入编写完整路径,还是避免创建完整路径
是的,通常使用完全导入,因为它使您能够以go库的形式分发代码。这样您就可以开发可重用代码,并根据需要将其导入任何项目中,或者将其发布到go社区
假设您有一个独立的项目,没有引用任何其他Go项目,并且您是以二进制文件而不是Go库的形式分发的。然后您可以使用类似的内容(虽然它不常用/不推荐)
只需在$GOPATH/src
像git clone github.com/hithubuser/app
$GOPATH/src/app/utils
# then import path is app/utils
另一种可能性是使用Go 1.5中介绍的供应商设施
创建一个供应商
目录
将utils
目录复制(或git clone
或其他内容)为vendor
的子目录,因此您的层次结构如下所示:
app
|--梅因,加油
`--卖主/
`--乌提尔斯/
`--乌提斯·戈
如果您使用的是Go 1.5,则启用供应商支持。较新版本默认情况下启用它
另一种可能性是使用Go 1.5中介绍的供应商设施
创建一个供应商
目录
将utils
目录复制(或git clone
或其他内容)为vendor
的子目录,因此您的层次结构如下所示:
app
|--梅因,加油
`--卖主/
`--乌提尔斯/
`--乌提斯·戈
如果您使用的是Go 1.5,则启用供应商支持。较新版本默认情况下启用它