【发布时间】:2014-01-17 23:00:48
【问题描述】:
GoLang 新手,来自 Delphi,C++:
我第一次尝试在 Go 中创建自己的包时,我按照有关如何布置工作区等的所有说明进行操作,但我不断收到编译器错误:
./myPackage.go:52: undefined: myFunc
经过一番探索,我发现 Go 中的公共访问修饰符只需通过以大写形式声明一个函数即可实现。太好了。
但是当我开始试验容器类时 - 对于初学者来说是 List,我发现我必须像这样声明一个 List 引用返回值:
func GetFactors(value *int64) *list.List {...
*list 小写。
当我声明对列表的本地引用时也是如此 - 我必须使用:
l := list.New()
同样,list 的小写。
所以,我很困惑。规则是什么?列表调用和引用显然是公开的,否则我将无法调用/使用它们 - 那为什么它们是小写的?
【问题讨论】:
-
请注意,从 Go 1.5 开始,您还将获得半公共方法(在“内部”包中):在当前项目中导出,而不是用于外部项目。见my answer below
标签: go private public case-sensitive access-modifiers