"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como detectar a disponibilidade de dados na entrada padrão do Go (Stdin)?

Como detectar a disponibilidade de dados na entrada padrão do Go (Stdin)?

Publicado em 2024-11-08
Navegar:504

How to Detect Data Availability in Go\'s Standard Input (Stdin)?

Detectando a disponibilidade de dados na entrada padrão (Stdin) usando Go

No Go, o fluxo de entrada padrão (os.Stdin) pode ser verificado quanto a dados usando a técnica de verificando o tamanho do arquivo. Veja como funciona:

O os.Stdin pode ser tratado como qualquer arquivo normal, permitindo-nos examinar suas propriedades. Para fazer isso, recuperamos um objeto FileInfo usando os.Stdin.Stat(). Este objeto fornece várias informações sobre o arquivo, incluindo seu tamanho.

Ao verificar o tamanho do arquivo, podemos determinar se o fluxo Stdin contém dados. Se seu tamanho for maior que zero, indica a presença de dados. Por outro lado, um tamanho zero indica que Stdin está vazio.

Abaixo está um exemplo de código que demonstra este método:

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")
    }
}

Esta técnica fornece uma maneira eficaz de determinar se os.Stdin possui dados sem bloquear a execução do programa enquanto aguarda a entrada. Pode ser particularmente útil nos casos em que você precisa lidar dinamicamente com dados recebidos de fontes ou processos externos.

Tutorial mais recente Mais>

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