golang的哪些坑爷事: package实践

zolo · · 21180 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在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)}


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:zolo

查看原文:golang的哪些坑爷事: package实践

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

21180 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传