如何使用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中文網其他相關文章!