我有一个只有一行单词的文本文件。我想将所有这些单词分别存储在一个通道中,然后从通道中将它们全部提取出来并一一打印出来。我有以下代码:
func main() {
f, _ := os.Open("D:\\input1.txt")
scanner := bufio.NewScanner(f)
file1chan := make(chan string)
for scanner.Scan() {
line := scanner.Text()
// Split the line on a space
parts := strings.Fields(line)
for i := range parts {
file1chan <- parts[i]
}
}
print(file1chan)
}
func print(in <-chan string) {
for str := range in {
fmt.Printf("%s\n", str)
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,出现以下错误:
致命错误:所有goroutine都在睡着-死锁!
goroutine 1 [chan send]:main.main()
我尝试在线查找它,但仍然无法解决。谁能告诉我为什么会这样,我该如何解决呢?
谢谢!