私はfoo構造体とメソッドのような関連するものを定義するので、 "foo"という名前のパッケージを持っています。idomaticパッケージ内の構造体のGo名?
パッケージには、Foo構造体が割り当てられたヒープを返す新しいメソッドがあります。
パッケージ名が "foo"の場合は、構造体型Fooの名前を付けてもよろしいですか?私はそれが吃音になるので確信しています。一方
var f foo.Foo
それはそれは大丈夫です、それはまた、慣用だ
f := foo.New(...)
私はfoo構造体とメソッドのような関連するものを定義するので、 "foo"という名前のパッケージを持っています。idomaticパッケージ内の構造体のGo名?
パッケージには、Foo構造体が割り当てられたヒープを返す新しいメソッドがあります。
パッケージ名が "foo"の場合は、構造体型Fooの名前を付けてもよろしいですか?私はそれが吃音になるので確信しています。一方
var f foo.Foo
それはそれは大丈夫です、それはまた、慣用だ
f := foo.New(...)
を書くために自然な感じ。標準ライブラリから
同様の例:
また、私はfoo.Foo
が単なる例であると思いますが、あなたの実際の型名では、型名に簡略化を使用することもできます。たとえば、標準libにhttp.CookieJar
インターフェイスがあり、を実装するタイプを提供するnet/http/cookiejar
パッケージがあり、cookiejar.CookieJar
ではなくcookiejar.Jar
という名前です。
だから、ちょうど常識を使い、(その観点から)パッケージのユーザーの観点から見てください。 foo.Foo
は完全に問題ありません。しかし、上記の同様の例は、他の多くのタイプを含むパッケージの一部です。パッケージが使用する唯一のタイプであれば、foo.F
も賢明で受け入れられるかもしれません。例として、意図的に短くされたbson.M
とbson.D
の型があります。それらはMongoDBクエリを作成するために頻繁に、そして複数回使用されるからです。文脈を考えれば、彼らが何であるかが明らかであり、トラブルや誤解を引き起こさない。