«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как определить доступность данных в стандартном вводе Go (Stdin)?

Как определить доступность данных в стандартном вводе Go (Stdin)?

Опубликовано 8 ноября 2024 г.
Просматривать:367

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

Определение доступности данных в стандартном вводе (Stdin) с помощью Go

В Go стандартный поток ввода (os.Stdin) можно проверить на наличие данных, используя технику проверка размера файла. Вот как это работает:

С os.Stdin можно обращаться как с любым обычным файлом, что позволяет нам проверять его свойства. Для этого мы извлекаем объект FileInfo с помощью os.Stdin.Stat(). Этот объект предоставляет различную информацию о файле, включая его размер.

Проверяя размер файла, мы можем определить, содержит ли поток Stdin данные. Если его размер больше нуля, это указывает на наличие данных. И наоборот, нулевой размер указывает, что стандартный ввод пуст.

Ниже приведен пример кода, демонстрирующий этот метод:

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

Этот метод обеспечивает эффективный способ определить, есть ли в os.Stdin данные, не блокируя выполнение программы во время ожидания ввода. Это может быть особенно полезно в тех случаях, когда вам необходимо динамически обрабатывать входящие данные из внешних источников или процессов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3