GoLang新手,来自Delphi,C++:

第一次try 在Go中创建自己的包时,我遵循了有关如何布局工作区等的所有说明,但不断收到编译器错误:

./myPackage.go:52: undefined: myFunc

在仔细研究了一下之后,我发现Go中的public access修饰符只需声明一个大写的函数即可.太棒了.

但是,当我开始试验容器类(List个初学者)时,我发现必须声明一个列表引用返回值,如下所示:

func GetFactors(value *int64) *list.List {...

100 is in lower case.

当我声明对列表的本地引用时也是如此——我必须使用:

l := list.New()

Again, lower case for 100.

所以,我很困惑.规则是什么?列表调用和引用显然是公开的,否则我将无法调用/使用它们-那么为什么它们是小写的呢?

推荐答案

在本例中,list是您通过import "container/list"导入的包的名称,它的公共成员是大写的,如List.

规则是公共函数、类型等应该大写.

您可以随心所欲地为导入的包添加别名,但默认情况下,它只是包路径的最后一部分的名称--在本例中为list.

更新:它不是包路径的最后部分.它是实际的包名(通常是相同的).

Go相关问答推荐

SEARCH On Conflict Clause不考虑乐观锁定版本

如何给杜松子wine 的路由加上一个名字,比如Laravel ?

Cypher 查找(多个)最低 node

如何使用 AWS sdk 在 Go 中正确解组 PartiQL 查询的结果?

golang testscript .txtar 语法,用于 stderr 或 stdout 中包含的文本

从 ApiGateway 中的 lambda Go 返回 Json

是否可以在调试期间在 VSCode 中预览 github.com/shopspring/decimal 值?

错误!在为 age-viewer-go 运行 wails dev 或 wails build 命令时

如何将整数哈希细分为范围

在 .go 文件中运行一个函数和在 Go 模板中调用它有什么区别?

如何在 Docker 容器中使用私有存储库进行身份验证

Protobuf.Any - 从 json.RawMessage 解组

我相信我正确地在 sRGB 和线性 RGB 之间进行了转换,那么为什么深色的结果看起来更糟呢?

Go 泛型:自引用接口约束

关系不存在 GORM

什么是无效字符实体 &ccb

Golang 有类似 C++ 的 decltype 的东西吗?

如何访问Go 1.18泛型 struct (structs)中的共享字段

关于GO的几个问题

如何将类型转换为字节数组golang