直接通信のためのバッファなし入力とのインターフェース
特定のシナリオでは、ユーザーのキーストロークを個別のキーとしてチャネルに直接送信することが望ましい場合があります。改行文字を必要とせずに を押します。この特定の要件は、Go の標準 Reader.ReadByte() メソッドに固有の制限である改行が入力されるまでコードをブロックしないようにする必要があることから生じています。
この問題を解決するには、stdin の仕組みを根本的に理解する必要があります。異なるオペレーティング システムで処理されることが重要です。デフォルトでは、stdin はラインバッファモードで動作します。つまり、改行が見つかるまで入力はバッファに保存されます。これは、各キーストロークにすぐにアクセスする必要がある場合に障害となります。
このバッファリング動作をバイパスするにはいくつかの方法があり、それぞれプラットフォーム固有の影響があります。
Windows プラットフォームのアプローチは前述の方法とは異なる場合があることに注意してください。ただし、ncurses や termbox などのライブラリのソース コードは、カスタム ソリューションを実装するための貴重なリファレンスとして機能します。
以上がGo でバッファなし入力による直接通信を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。