Go语言中的符号导入导出、类型系统与变量函数使用
1. 符号的导入与导出
在Go语言里,包声明之后会跟着一系列的导入语句,这些语句指定了代码中所需的包。导入未使用的包(除非被忽略)会导致编译错误,这就是Go格式化工具 gofmt 会移除未使用包的原因。此外,还有像 goimports (https://godoc.org/golang.org/x/tools/cmd/goimports )和 goreturns (https://github.com/sqs/goreturns )这样的实验性或社区工具,它们能为Go文件添加缺失的导入。
需要特别注意的是,要避免出现循环依赖,因为存在循环依赖的代码无法编译。为了打破循环依赖,一种好的做法是从包中导出功能,或者用接口来替代依赖。
Go语言将符号的可见性简化为二进制模型,即导出和未导出,这与许多具有中间级别的其他语言不同。在每个包中,所有以大写字母开头的符号都会被导出,其他符号则仅在包内部使用。导出的值可以被其他包使用,而未导出的值只能在包自身中使用。
如果包路径中有 internal 元素(例如 my/package/internal/pdf ),则该包及其子包只能被相邻的包(如 my/package )导入。以下是一些内部包的示例:
- my/package/internal
- my/package/internal/numbers
-
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



