与无缓冲输入接口进行直接通信
在某些情况下,需要将用户击键作为每个单独的键直接传输到通道按下时不需要换行符。这个特殊的要求源于需要避免在输入换行符之前阻塞代码,这是 Go 中标准 Reader.ReadByte() 方法固有的限制。
要解决这个问题,需要对 stdin 如何工作有一个基本的了解由不同的操作系统处理是至关重要的。默认情况下,stdin 以行缓冲模式运行,这意味着输入将存储在缓冲区中,直到遇到换行符。如果您需要立即访问每次击键,这会造成障碍。
有多种方法可以绕过此缓冲行为,每种方法都有其特定于平台的含义:
值得注意的是,Windows 平台的方法可能与上述方法有所不同,但 ncurses 或 termbox 等库的源代码可以作为实现自定义解决方案的宝贵参考。
以上是Go中如何实现与无缓冲输入的直接通信?的详细内容。更多信息请关注PHP中文网其他相关文章!