Go で Stdin にデータがあるかどうかを確認する方法
Go で入力ストリームを操作するとき、次のことが必要な状況に遭遇することがあります。 os.Stdin に利用可能なデータがあるかどうかを確認します。これは、入力の読み取りを続行するか、ユーザーにプロンプトを表示するかを決定するなど、さまざまなシナリオで役立ちます。
解決策:
os.Stdin Go の他のファイル記述子と同様に扱われます。データがあるかどうかを確認するには、そのサイズを調べることができます:
<code class="go">package main import ( "fmt" "os" ) 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>
使用法:
このコードを実行可能ファイルにコンパイルし、パイプのように使用できます。 :
$ ./pipe Stdin is empty $ echo test | ./pipe 5 bytes available in Stdin
この例は、データが stdin にパイプされない場合、プログラムは空の stdin を報告し、データがパイプインされる場合、使用可能なバイトを正しく示すことを示しています。
以上がGo に Stdin にデータがあるかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。