在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/ build [E:/cgss/src/pkg01]
can't load package: package pkg01: found packages pkg01 () and pkg012 () in E:cgsssrcpkg01
在同一个folder存在多个package, 则加载失败. 即使是main, 也一样
D:/go/bin/ build [E:/cgss/src/test]
can't load package: package test: found packages main () and file01 () in E:cgsssrc est
2. folder name与package name不同(即package path与package name不同), 则需要使用
"import alias path"语法, 即:
import <package_name> <package_path>
否则编译错误: package name不是合法标识符.
D:/go/bin/ build [E:/cgss/src/test]
can't load package: package test: found packages main () and file01 () in E:cgsssrc est
package main import "fmt"import pkg012 "pkg01" func main() { (pkg012.PKG_NAME)}
转载地址:/articles/3f6e2cfcbb0488