Gibt es in Go eine zuverlässige Möglichkeit, zu überprüfen, ob der Eingabestream (os .Stdin) enthält Daten?
Der herkömmliche Ansatz, aus den Stream-Blöcken zu lesen, wenn keine Daten verfügbar sind, macht ihn für bestimmte Anwendungsfälle unpraktisch.
Ähnlich wie Andere Dateien, os.Stdin, können überprüft werden, um ihre Größe zu bestimmen, was eine praktische Methode zur Erkennung der Datenverfügbarkeit bietet.
<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>
Durch die Verwendung dieser Technik können Sie zwischen leeren und nicht leeren stdin-Eingaben unterscheiden und so Folgendes ermöglichen für einen flexibleren Umgang mit der Datenverfügbarkeit.
Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit zu überprüfen, ob die Standardeingabe (os.Stdin) in Go Daten ohne Blockierung enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!