函数的命名约定
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 的任何入门级指南以获取更多信息。
在文档中,他们同时使用驼峰式和帕斯卡式。这个约定对于函数和方法是否不同?它决定功能的范围吗?
是的。在 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 的任何入门级指南以获取更多信息。