Go では、親ディレクトリの外部から内部パッケージを使用しようとすると、「内部パッケージの使用」がトリガーされますパッケージは許可されていません」というエラーが発生しました。この制限は、モジュール性を強制し、予期しないパッケージの相互作用を防ぐために役立ちます。ただし、特定のシナリオでは、開発者はこのチェックを無効にする必要がある場合があります。
Go 開発チームによると、現時点では、内部パス チェックを無効にする組み込みのコンパイラ、リンカー、その他のフラグはありません。この決定は、パッケージ間のセキュリティと分離を優先する Go の核となる設計原則から来ています。
「内部」パッケージ インポート ルールのドキュメントには、例外のメカニズムや、他のホワイトリストに登録するための ACL システムがないことが説明されています。内部パッケージにアクセスできるパッケージ。これは、パスに「/internal/」を含むパッケージは、同じパッケージ ツリー内のコードからのみアクセスできることを意味します。
この制限は、init 関数で設定された内部値にアクセスする必要がある開発者にとっては困難になる可能性があります。興味のあるパッケージ。このような場合、パッケージの設計を再検討し、内部ロジックを別の非内部パッケージに分割する必要がある場合があります。これにより、メイン関数は「内部パッケージの使用は許可されていません」というエラーが発生することなく、必要な機能をインポートできるようになります。
以上がGo での「内部パッケージの使用は許可されていません」エラーを克服するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。