改行要件なしでキーストロークをチャネルに送信する
この質問は、ユーザーのキーストロークが入力されたときにチャネルに直接送信するという課題を探ることを目的としています。改行文字を必要とせずに標準入力に変換します。提供されたコードはこれを試みますが、制限に直面します。reader.ReadByte() メソッドは続行する前に改行を待機します。
解決策は、標準入力が通常、デフォルトで行バッファリングされることを理解することにあります。これにより、改行が見つかるまで入力が即座に返されなくなります。これは Go に固有の特性ではありません。
望ましい動作を実現するには、プラットフォーム固有のソリューションが必要です。 1 つのオプションは、バッファリングされていない入力を処理する方法を提供する ncurses ライブラリを使用することです。もう 1 つの代替手段は、軽量の go-termbox パッケージです。
ただし、完全に手動のアプローチが望ましい場合は、termios の C バインディングを詳しく調べるか、Linux システムで Go システムコールを直接使用できます。 Windows がこれをどのように処理するかはまだ不明ですが、ncurses または termbox のソース コードを通じて調べることができます。
以上が改行を必要とせずにキーストロークをチャネルに送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。