OS 固有の依存関係に依存するクロスプラットフォームの Go ライブラリを開発する場合、ビルドを区別することが必要になりますさまざまなオペレーティング システムのプロセス。これにアプローチする方法は次のとおりです。
たとえば、Windows の場合は「encoding/osheb」パッケージ、Linux の場合は「encoding/olson」パッケージを使用するライブラリを構築することを考えてみましょう。ビルド プロセスを効率的に編成するために、ビルド制約とファイル命名規則を利用できます。
ビルド制約を使用すると、特定のコード ブロックをコンパイルするために満たさなければならない条件を指定できます。 。 Windows を含む Unix 系システムの場合、「 build 」ディレクティブの後に OS 名を続けることができます:
<code class="go">// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris</code>
これは、このディレクティブの下にあるコードが指定されたオペレーティング システムに対してのみコンパイルされることを意味します。
Go 標準ライブラリ パッケージは、特定のオペレーティング システムを対象とする一貫したファイル命名規則を使用します:
複数のオペレーティング システム間で共有されるファイルの場合: 「stat_unix.go」として通常のパッケージに含めますが、ビルド制約で制限します。
ビルド制約と命名規則を使用すると、OS 固有のコードを含む単一のパッケージを作成でき、さまざまなオペレーティング システムのビルド プロセスを簡単に区別できます。
以上がクロスプラットフォームの Go ライブラリで OS 固有のコードを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。