2016-09-22 131 views
0

在文檔中,它們都使用駱駝事件和pascal事件。這個約定是不同的函數和方法?它是否決定了函數的範圍?Go函數的命名約定

回答

3

是的。在Go中,如果字段/方法以大寫字母開頭,而未導出字母,則標識符的第一個字母爲小寫。這與大多數OO語言中的公共/私人功能類似。這裏有一個或兩個例子。

package "a" 

func ThisFunctionIsExported() {} 

func thisOneIsNot() {} 


... 

package "b" 

import "a" 

a.ThisFunctionIsExported() // works 

a.thisOneIsNot() // compiler error 

所以,是開發商有意識地決定什麼這些方法的範圍與他們的外殼選擇。低級函數總是包範圍內的輔助方法,它們不會在導入範圍中公開。

1

我不確定Go上的文檔曾經提到「Pascal案例」。 假設你使用這個詞來表示駝峯名字,以大寫或小寫字母開頭,對嗎?

好的,Go對這兩種變體都使用術語「駱駝案例」。 標識符的第一個字母與大寫字母之間的區別確實決定了該符號的可見性。 請閱讀Go上的任何入門級指南以獲取更多信息。

+0

是的,他很確定他使用pascal case來引用像thisIsAnObject這樣的名字,而camel case則是ThisIsAnObject - 這不是很多開發者擔心或關心的區別。 – evanmcdonnal

+0

我的意思是相反的 – surbhi