默认情况下,Stdin是行缓冲的。这意味着在遇到换行符之前,它不会为您提供任何输入。这不是Go特定的事情。
使它以非缓冲的方式运行是高度特定于平台的。正如Rami所建议的那样,ncurses是一种实现方法。另一个选择是更轻便的go-
termbox软件包。
如果您想手动完成所有操作(至少在Linux上),则可以查看为termios编写C绑定,或直接在Go中进行系统调用。
我不知道像Windows这样的平台如何处理这个问题。您可以深入研究ncurses或termbox的源代码,以了解它们的工作方式。



