2016-09-22 20 views
0

ドキュメントでは、両方ともラクダケースとパスカルケースを使用しています。関数とメソッドではこの規約が異なりますか?それは機能の範囲を決定しますか?Go関数の命名規則

答えて

3

はい。 Goでは、識別子の最初の文字が小文字であれば、フィールド/メソッドは大文字で始まり、大文字で始まる場合はエクスポートされ、エクスポートされない場合はエクスポートされます。これは、ほとんどのOO言語の公開/非公開機能に似ています。ここに例があります。

package "a" 

func ThisFunctionIsExported() {} 

func thisOneIsNot() {} 


... 

package "b" 

import "a" 

a.ThisFunctionIsExported() // works 

a.thisOneIsNot() // compiler error 

はい、はい、開発者は、これらのメソッドの範囲がケーシングの選択肢にあることを意識して決定しています。小文字の関数は常にパッケージスコープ内のヘルパメソッドであり、スコープのインポートでは公開されません。

1

「Go」のドキュメントに「パスカルのケース」が含まれているかどうかは不明です。 おそらくあなたは大文字か小文字かどちらかで始まるラクダの名前を示すためにこの用語を使用しているのでしょうか?

わかりました。Goは、両方のバリエーションで「ラクダケース」という用語を使用しています。 識別子の最初の文字が大文字であるかどうかの区別は、実際にそのシンボルの可視性を制御します。 詳細については、Goのエントリーレベルのガイドをお読みください。

+0

ラクダのケースが「ThisIsAnObject」であるのに対して、彼は 'thisIsAnObject'のような名前を参照するためにパスカルケースを使用していることは間違いないと思います。 – evanmcdonnal

+0

私はそれを他の方法で – surbhi