[解決済み】複数ファイルのGoプロジェクトを整理する【クローズド
質問
注:この質問は、次のことに関連しています。 これ しかし、2年というのは、囲碁の歴史の中ではとても長い時間です。
開発中のGoプロジェクトの標準的な編成方法は何ですか?
私のプロジェクトは、単一のパッケージ
mypack
ということで、すべての .go ファイルを
mypack
ディレクトリを作成します。
しかし、それなら開発中にテストしたいので、少なくとも
main
パッケージを使用することで
go run trypack.go
どのように整理すればよいのでしょうか?以下のようになります。
go install mypack
その都度、試してみるのですか?
解決方法は?
のこのページを見直すことをお勧めします。 Goコードの書き方
この本は、プロジェクトの構成方法を
go build
を使いやすくし、また、テストの書き方を説明します。テストは、コマンドラインで
main
パッケージを使用します。それらは単に各パッケージの一部としてTestXの名前付き関数とすることができ、さらに
go test
がそれを発見してくれる。
ご質問のリンク先で提案されている構造は、Go 1のリリースに伴い、少し古くなっています。
pkg
ディレクトリの下に
src
. spec に関連するディレクトリは、GOPATH のルートにある bin、pkg、src の 3 つだけです。src の下には、単純にプロジェクトの
mypack
その下にmypack_test.goを含むすべての.goファイルがあります。
go build
は、ルートレベルの pkg と bin にビルドされます。
ですから、GOPATHは次のようになります。
~/projects/
bin/
pkg/
src/
mypack/
foo.go
bar.go
mypack_test.go
export GOPATH=$HOME/projects
$ go build mypack
$ go test mypack
更新: >= Go 1.11の時点で モジュール システムは現在ツールの標準的な部分であり、GOPATH のコンセプトは廃止されつつあります。
関連
-
[解決済み] Goで配列を反転させるにはどうしたらいいですか?
-
[解決済み] Goをアンインストールする方法を教えてください。
-
[解決済み] SDL2 パッケージを提供する必要なモジュールはありません。
-
GOROOT に xxx というパッケージがないというエラーが GoLand から報告される
-
[解決済み] キューの実装はありますか?
-
[解決済み] このキャスティングはgolangで行われているのでしょうか?
-
[解決済み] gofmtの使い方を教えてください。
-
[解決済み] Goで2つのスライスを連結する
-
[解決済み] Goでファイルが存在するかどうかを確認する方法は?
-
[解決済み】チャンネルを開いたままにしておいてもいいのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】golangでデータ構造をディープコピーする
-
[解決済み] ParseFormはいつ使うべきで、FormValueとPostFormValueはいつ使うべきですか?
-
Solve golang compile prompt dial tcp 172.217.160.113:443: connectex: 接続の試行に失敗しました
-
[解決済み] キューの実装はありますか?
-
[解決済み] Goのペア/タプルデータ型
-
[解決済み] インポートサイクル不可
-
[解決済み] Golangで定数mapを宣言するには?
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
eclipse+goclipseプラグイン+gdbによるgo言語開発デバッグ環境の構築 ---最終起動シーケンスでのエラー MIコマンドの実行に失敗しました。
-
[解決済み】Goの構造体にデフォルト値を設定する方法