首頁  >  文章  >  後端開發  >  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn