4

Go で (操作の一部として) ユーザーからパスワードを取得する必要があるコマンドライン ユーティリティを作成しています。これを行う Unix 用の優れたgopassモジュールがあり、Windows コンソール用のモジュールを作成する方法を知っています。問題は、Windows モジュールが明らかに *nix 上でビルドされず、*nix バージョンが Windows 上でビルドされないことです。Go にはプリプロセッサのサポートがないため (私が知る限り)、これにアプローチする正しい方法が何であるかはまったくわかりません。Go自体が独自のライブラリに対してこれを行う必要があるため、それが可能であることはわかっていますが、私が慣れているツール(条件付きインポート/プリプロセッサ/など)が不足しているようです.

4

1 に答える 1

8

Go にはビルド制約があり、.go ファイル内のコメントとして、またはファイル名の一部として指定できます。

制約の 1 つのセットはターゲット オペレーティング システム用であるため、Windows 用に 1 つのファイル、Linux 用に 1 つのファイルを用意し、2 つの異なる方法で同じ関数を実装できます。

ビルド制約の詳細については、 http: //golang.org/pkg/go/build/#hdr-Build_Constraintsを参照してください。

于 2013-05-24T15:39:07.933 に答える