Go では、コマンドやパイプラインを操作するときに標準入力 (stdin) と対話することが重要なタスクとなることがよくあります。ただし、プログラムの実行をブロックせずに stdin にデータがあるかどうかを判断するのは難しい場合があります。
os.Stdin ファイル オブジェクトは stdin を表し、Go の他のファイル オブジェクトと同様の機能を備えています。これにより、Stat 関数を活用して、サイズなどの stdin に関する情報を収集できるようになります。
stdin にデータが含まれているかどうかを確認するには、次のコードを使用してサイズを確認できます。
<code class="go">func main() { file := os.Stdin fi, err := file.Stat() if err != nil { fmt.Println("file.Stat()", err) } size := fi.Size() if size > 0 { fmt.Printf("%v bytes available in Stdin\n", size) } else { fmt.Println("Stdin is empty") } }</code>
このコードを実行可能ファイルにコンパイルすると、標準入力にパイプされた入力を処理するフィルターとして使用できます。たとえば、コマンド echo test | を実行します。 ./executable はコンソールに「5 bytes available in Stdin」と出力し、stdin にデータが含まれていることを示します。逆に、何も入力せずに ./executable を実行すると、「標準入力が空です」と表示されます。
このアプローチにより、開発者はブロックせずに標準入力のデータを確認し、それに応じてプログラムのロジックを進めることができます。これは、パイプラインを操作するとき、または標準入力からのユーザー入力を処理するときに特に便利です。
以上がGo でブロックせずに Stdin のデータを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。