2017-02-12 5 views
1

Goの1つのパッケージに対して2つ以上のファイルでインポートする必要がある場合は、どのように慣用方法ですか?Goパッケージのインポートをファイルに分割

今日まで、私はこのようにそれを行う:

file1.go

package A 

import "os" 

file2.go

package A 

import "os" 

答えて

4

それはそれはスコープの問題だ、慣用的であることの問題ではありません。

Import declarationsは、ファイルを含むスコープです。 Spec: Import declarations:

インポート宣言は、宣言を含むソースファイルインポートパッケージ(§Program initialization and execution)の機能に依存し、そのパッケージのエクスポートされた識別子へのアクセスを可能にすることを述べています。またSpec: Declarations and scope:

Goは字句blocks使用してスコープされ


...インポートされたパッケージのパッケージ名の
3.スコープが含まれているファイルのファイルブロックです輸入宣言これが何を意味するのか
...

複数のファイルで必要とされているパッケージがあるかどう(単一のパッケージまたは複数を形成するが、それは問題ではない)ということで、あなたはすべての中で個別にインポートする必要がありますそれらのファイル。

機能と宣言を同じ依存関係(同じパッケージセットに依存する)にグループ化する良い方法かもしれないので、ファイル間でコードをどのように分離するかを見直して改訂する必要があります。これらのパッケージを一度インポートするだけで済みます。

はまた、パッケージmypkgの特定のファイルが他のパッケージの集合ではなく、mypkgの他のファイルに依存している場合、また、依存関係に基づいて、2つの別々のパッケージにmypkgを分割する有益であり得ることに注意してください。これらの決定の大部分は主観的ですが、あなたの事例で意味をなさないかどうかを教えてください。

+0

偉大な答え、ありがとうございます! – Steffen

関連する問題