Я новичок в Go (как и в последний день), и я играю с простой программой, которая обрабатывает данные из stdin. Я хотел бы сделать так, чтобы, если никакие данные не были предоставлены stdin, тогда программа выведет экран справки и выйдет. Проблема, с которой я столкнулся, заключается в том, что программа, кажется, вешает бесконечно, когда данные не предоставляются через stdin. Вот краткий пример программы и мое предполагаемое использование:Вход файла в golang
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanLines)
for scanner.Scan() {
str := scanner.Text()
fmt.Println(str)
}
}
Running with input:
go run test.go < lines.txt
line1
line2
line3
Running with no input:
go run test.go
Второй случай, когда я не обеспечивают ввод является то, что заставляет программу повиснуть. Прочитав документы, мне не ясно, как я смогу закодировать программу, чтобы не ждать ввода бесконечно долго, а скорее разорвать, если ничего не найдено на stdin.
Имеет смысл. Я несколько ожидал ответа на эти вопросы, но я хотел дважды проверить, что я не просто что-то упустил. – spin77