golang的哪些坑爷事: package实践

Posted zolo®

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang的哪些坑爷事: package实践相关的知识,希望对你有一定的参考价值。

在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把.

关于golang的package的最佳实践:

package is folder.

package name is folder name.

package path is folder path.

信耶稣得永生!


1. 同一个folder存在不同package, 编译错误:

D:/go/bin/go.exe build [E:/cgss/src/pkg01]

can‘t load package: package pkg01: found packages pkg01 (pkg01.go) and pkg012 (pkg02.go) in E:\cgss\src\pkg01

在同一个folder存在多个package, 则加载失败. 即使是main, 也一样

D:/go/bin/go.exe build [E:/cgss/src/test]

can‘t load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:\cgss\src\test

2. folder name与package name不同(即package path与package name不同), 则需要使用

    "import alias path"语法, 即: 

    import <package_name> <package_path>

否则编译错误: package name不是合法标识符. 

D:/go/bin/go.exe build [E:/cgss/src/test]

can‘t load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:\cgss\src\test

package main
import "fmt"import pkg012 "pkg01"
func main() { fmt.Println(pkg012.PKG_NAME)}

以上是关于golang的哪些坑爷事: package实践的主要内容,如果未能解决你的问题,请参考以下文章

架构实践使用 golang 实现一致性Hash算法代码

Go 上下文取消函数的最佳实践

golang 引用相对路径package

Golang 框架 gin运行源码分析

Plsql developer 工具创建存储过程,必须要在package 文件下创建存储声明 pa

Golang package sync 剖析: sync.Once