在文档中,它们同时使用驼峰命名法和帕斯卡命名法。对于函数和方法,这个约定是否有所不同?它是否决定了函数的作用域?
是的,在Go语言中,如果一个字段/方法以大写字母开头,则被导出,而如果标识符的第一个字母为小写,则未导出。这类似于大多数面向对象语言中的公共/私有特性。以下是一两个示例:
package "a"
func ThisFunctionIsExported() {}
func thisOneIsNot() {}
...
package "b"
import "a"
a.ThisFunctionIsExported() // works
a.thisOneIsNot() // compiler error
所以,是的,开发人员会有意识地决定这些方法的作用域和大小写。小写字母函数始终是包范围内的辅助方法,它们不会在导入范围中公开。
thisIsAnObject
,而驼峰命名法应该是ThisIsAnObject
- 这并不是许多开发者担心或关心的区别。 - evanmcdonnal