函数的命名约定

Go Naming convention for function

在文档中,他们同时使用驼峰式和帕斯卡式。这个约定对于函数和方法是否不同?它决定功能的范围吗?

是的。在 Go 中,如果 field/method 以大写字母开头,则导出它;如果标识符的第一个字母为小写字母,则不导出它。这类似于大多数 OO 语言中的 public/private 功能。这是一两个例子;

package "a"

func ThisFunctionIsExported() {}

func thisOneIsNot() {}


...

package "b"

import "a"

a.ThisFunctionIsExported() // works

a.thisOneIsNot() // compiler error

所以,是的,开发人员有意识地根据他们的外壳选择来决定这些方法的范围。小写函数始终是包范围内的辅助方法,它们不会在导入范围中公开。

我不确定 Go 的文档是否提到过 "Pascal case"。 假设您使用此术语来表示以大写字母或小写字母开头的驼峰式名称,对吗?

好的,Go 对这两种变体都使用术语 "camel case"。 标识符的首字母是否大写之间的区别确实决定了该符号的可见性。 请阅读有关 Go 的任何入门级指南以获取更多信息。