Go 中的公共和私有访问修饰符:大写和小写混淆
从 Delphi 或 C 过渡到 Go 时,了解规则管理访问修饰符可能具有挑战性。特别令人困惑的是使用大小写字母来表示公共和私有访问。
访问修饰符规则:
在 Go 中,公共访问是通过大写来实现的函数或类型名称。例如,名为 myFunc 的公共函数将编写为 func MyFunc()。
容器类异常:
但是,在使用容器/列表等容器类时,规则似乎被打破了。容器类型名称List是大写的,表示公共访问,但是包名称container/list是小写的。这种不一致可能会令人困惑。
解释:
在 Go 中,包与类型不同。包名称表示包代码所在的文件和目录。包名称通常与包路径的最后部分相同,但情况并非总是如此。
包的公共成员是通过大写类型名称访问的。在此示例中,container/list 是包路径,List 是公共类型名称。小写的 list 是包的别名,允许您在代码中将其引用为 list。
因此, func GetFactors(value *int64) *list.List {...} 和 l : = list.New() 都是有效的,因为 List 是 container/list 包中的公共类型,而 list 是该包的别名。
以上是为什么 Go 函数的名称大写为公共,而包的名称小写为私有?的详细内容。更多信息请关注PHP中文网其他相关文章!