具体的内容请阅读: https://github.com/fumeboy/a-way-to-export-symbols
在小型 golang 项目中,随意地使用大写字母开头的命名来导出符号是很轻松的,没有太大的阅读包袱。
但是当项目变得很大时,大写字母开头的命名则很难做好视觉上或其他方面上的提醒,在当项目转手时,它对于新程序员的上手是个不小的折磨。
这个时候我们需要一个好的方法来进行包内符号的导出
很简单,没有什么魔法。
一句话概括: 把 包内符号的导出 放在特定的文件中进行。
假如 我有一个包,它是 pkg_example,这个包里我有这些符号需要导出:
// inner.go
type inner_typ_a int
type inner_typ_b int
func inner_fn_a(){}
func inner_fn_b(){}
var inner_var_a = 1
var inner_var_b = 1
但是我并不直接修改它们的名字,而是给 pkg_example 创建一个特定的文件:exports.go
在这个文件里,创建这些符号的别名,这些别名是被导出的:
// exports.go
type (
TYP_a = inner_typ_a
TYP_b = inner_typ_b
)
var (
FN_a = inner_fn_a
FN_b = inner_fn_b
)
var (
VAR_a = inner_var_a
VAR_b = inner_var_b
)
就是这么简单
仅当在给变量做别名时,需要额外的考虑:
var VAR_a = inner_var_a
这句赋值发生时,inner_var_a 是否已经初始化了?
若没有初始化,VAR_a 得到的是一个“空值”而不是初始化后的 inner_var_a
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.