go
1func input(r io.Reader) <-chan string { 2 ch1 := make(chan string, 1) 3 go func() { 4 s := bufio.NewScanner(r) 5 for s.Scan() { 6 ch1 <- s.Text() 7 } 8 9 }() 10 return ch1 11} 12func main() { 13 ch := input(os.Stdin) 14 for { 15 16 fmt.Print(">") 17 fmt.Println(<-ch) 18 } 19 20} 21
このコードを実行すると,(標準入力->標準入力文字列の表示)という処理が繰り返されるのですがなぜですか?
input関数はmain関数の冒頭で一回きりしか読まれていないのにこういった挙動になるのが理解できません。
どなたか教えてください。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/24 11:07
2021/02/24 11:29
2021/02/24 11:32
2021/02/24 11:39
2021/02/24 11:55
2021/02/24 13:13
2021/02/24 15:32