與無緩衝輸入介面進行直接通訊
在某些情況下,需要將使用者擊鍵作為每個單獨的鍵直接傳送到頻道按下時不需要換行符。這個特殊的要求源自於需要避免在輸入換行符之前阻塞程式碼,這是 Go 中標準 Reader.ReadByte() 方法固有的限制。
要解決這個問題,需要對 stdin 如何運作有一個基本的了解由不同的作業系統處理是至關重要的。預設情況下,stdin 以行緩衝模式運行,這表示輸入將儲存在緩衝區中,直到遇到換行符。如果您需要立即存取每次擊鍵,這會造成障礙。
有多種方法可以繞過此緩衝行為,每種方法都有其特定於平台的含義:
值得注意的是,Windows 平台的方法可能與上述方法有所不同,但ncurses 或termbox 等函式庫的原始程式碼可以作為實作自訂解決方案的寶貴參考。
以上是Go中如何實現與無緩衝輸入的直接通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!