「内部」パッケージを使用してgoコードを整理する方法を理解してください。"internal"パッケージの使用方法は?
project/
internal/
foo/
foo.go # package foo
bar/
bar.go # package bar
main.go
# here is the code from main.go
package main
import (
"project/internal/foo"
"project/internal/bar"
)
project/
GOPATHツリーから外側にある:私は私が持っている構造がどのような見せしましょう。 main.go
からインポートしようとするパスは何もなく、うまく動作する唯一のケースはimport "./internal/foo|bar"
です。私は何かが間違っていると思うか、一般的に間違った "内部"パッケージのアイデアを得る。誰もが物事をより明確にすることができますか?
UPDATE
上記の例では、私が$GOPATH/src
下project/
フォルダを配置することでした必要なものだけが正しいです。したがって、project/internal/foo|bar
のようなインポートパスは、外部からではなくproject/
サブツリーからのみインポートすると実行可能です。
を建設することを計画する場合は特に、よりスケーラブルです。 'project/baz'パッケージを作成しようとすると、それをインポートすることはできません。すべてのプロジェクトをGOPATHに入れる。 –
GOPATHの下にすべてのプロジェクトを配置したくない場合はどうすればいいですか? –
これはgoツールの仕組みです。パッケージを使用する場合は、GOPATHの下にある必要があります。 – JimB