Go で標準入力から文字を即座に読み取る
Go では、通常、標準入力から文字を読み取るには、入力を受け取るために Enter キーを押す必要があります。ただし、C# の Console.ReadKey() と同様に、アプリケーションがキーの押下に即座に応答するようにしたい場合は、次のソリューションでそれを実現できます。
提供されたコードは、stty コマンドを使用して入力バッファリングを無効にし、キーストロークは即座に処理されます。表示された入力を防ぐために、文字のエコーも抑制されます。
コードは次のとおりです:
package main import ( "fmt" "os" "os/exec" ) func main() { // Disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() // Suppress input echoing exec.Command("stty", "-F", "/dev/tty", "-echo").Run() var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") } }
このコードの実行中に任意のキーを押すと、すぐに文字バイト表現と対応する文字がコンソールに返されます。 .
以上がGo で標準入力から単一の文字を即座に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。