我是 Go 的新手(就像在最后一天一样)并且正在玩一个简单的程序来处理来自标准输入的数据。我想要做的是,如果没有向标准输入提供数据,那么程序将输出一个帮助屏幕然后退出。我遇到的问题是,当没有通过标准输入提供数据时,程序似乎无限期挂起。这是该程序的简短示例和我的预期用途:
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
我不提供输入的第二种情况是导致程序挂起的原因。通读文档,我不清楚如何编写程序以不无限期地等待输入,而是在标准输入上没有任何内容时中断。