Go では、パッケージは関連するコードとデータをカプセル化します。あるパッケージの機能を別のパッケージで再利用するには、最初のパッケージを後者のパッケージにインポートする必要があります。
次のプロジェクト構造を考慮してください:
src |-->config |--> config.go |-->otherPackage |--> otherFile.go |-->main.go
ファイル config.go には、Config のタイプ定義が含まれています:
package config type Config struct { // ... }
使用したいファイル otherFile.go:
package otherPackage func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
構成パッケージをインポートしようとすると、次のエラーが発生します。次のエラー:
最初のエラーは、構成パッケージをインポートしたが、それがコード内のどこにも使用されていないことを示します。 2 番目のエラーは、構成タイプが現在のスコープで認識されないことを示しています。
この問題を解決するには、完全なパッケージを使用してパッケージをインポートする必要があります。相対パスではなくパスを使用します。さらに、コード内で Config タイプを参照する場合は、そのパッケージ名で Config タイプを修飾する必要があります。
package otherPackage import ( "fmt" "math" "your-project/src/config" ) func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
フルパスでパッケージをインポートすることにより、Config タイプを見つける場所を明示的に指定します。パッケージ名で型を修飾すると、コンパイラはどの Config 型を参照しているのかを確実に認識できるようになります。
注: インポートしているパッケージ名が変数または型と同じである場合は、現在のスコープの場合、競合を避けるために変数または型の名前を変更する必要があります。
以上がGo で、あるパッケージで定義された型を別のパッケージで使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。