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)}
最新文章
- ASP.NET MVC RenderPartial和Partial的区别
- arcmap配置的mxd慢的问题
- mac上的git completion
- EnumHelper枚举常用操作类
- How to install ruby on mac/ change ruby source in china
- alue of type java.lang.String cannot be converted to JSONObject
- mysql数据库在Navicat Premium连接的时候出现1862错误
- sql server遍历表不用游标和临时表的方法
- Linux设备驱动中的ioctl
- PHP获取文件扩展名的五种方式
- RESTful WebService 入门实例
- WinForm界面设计-Button添加背景图去边框
- GCC后端移植杂记
- Leetcode(一)两数之和
- C语言中getch()、getche()和getchar()
- 通过T4模板实现代码自动生成
- 单元测试使用spring注解获取bean
- sublime 设置侧边栏颜色
- MySQL监控、性能分析——工具篇(转载)
- 简单实现JS上传图片预览功能