No Go, existe uma maneira confiável de verificar se o fluxo de entrada (os .Stdin) contém dados?
A abordagem convencional de leitura do fluxo bloqueia quando nenhum dado está disponível, tornando-a impraticável para certos casos de uso.
Semelhante a outros arquivos, os.Stdin pode ser inspecionado para determinar seu tamanho, oferecendo um método conveniente para detecção de disponibilidade de dados.
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")
}
}
Ao utilizar esta técnica, você pode distinguir entre entradas stdin vazias e não vazias, permitindo um tratamento mais flexível da disponibilidade de dados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3