ホームページ  >  記事  >  バックエンド開発  >  Go に Stdin にデータがあるかどうかを確認するにはどうすればよいですか?

Go に Stdin にデータがあるかどうかを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-02 04:08:02784ブラウズ

How to Check if Stdin Has Data in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。