В 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