Go函数命名规范

3
在文档中,它们同时使用驼峰命名法和帕斯卡命名法。对于函数和方法,这个约定是否有所不同?它是否决定了函数的作用域?
2个回答

8

是的,在Go语言中,如果一个字段/方法以大写字母开头,则被导出,而如果标识符的第一个字母为小写,则未导出。这类似于大多数面向对象语言中的公共/私有特性。以下是一两个示例:

package "a"

func ThisFunctionIsExported() {}

func thisOneIsNot() {}


...

package "b"

import "a"

a.ThisFunctionIsExported() // works

a.thisOneIsNot() // compiler error

所以,是的,开发人员会有意识地决定这些方法的作用域和大小写。小写字母函数始终是包范围内的辅助方法,它们不会在导入范围中公开。


这是有道理的,因为Go语言简单,与Java相比,你不需要一直写“public”和“private”。 - Brain

1
我不确定Go的文档是否曾提到“Pascal case”。 据说您使用此术语来表示以大写或小写字母开头的驼峰命名,是吗?
好的,Go将“camel case”用于两种变体。 标识符的第一个字母是否大写确实决定了该符号的可见性。 请阅读任何入门指南以获取更多信息。

是的,我相当确定他使用帕斯卡命名法来指代一个名字,比如thisIsAnObject,而驼峰命名法应该是ThisIsAnObject - 这并不是许多开发者担心或关心的区别。 - evanmcdonnal
我是指相反的意思 - surbhi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接