Eingabe-Tastenanschlag-Streaming an einen Kanal ohne Newline-Anforderung
In die Standardeingabe (stdin) eingegebene Tastenanschläge werden normalerweise gepuffert, d. h. sie werden nur gesendet zu einem Kanal, wenn ein Zeilenumbruchzeichen eingegeben wird. In bestimmten Situationen kann es jedoch wünschenswert sein, jeden Tastendruck direkt an den Kanal zu senden, ohne auf eine neue Zeile warten zu müssen.
Anfänglicher Ansatz und seine Nachteile
Der anfängliche Code Die in der Frage bereitgestellte Funktion, die dazu gedacht ist, Tastenanschläge an einen Kanal zu senden, nutzte den bufio.NewReader(os.Stdin)-Reader mit reader.ReadByte(). Diese Methode blockiert, bis ein Zeilenumbruchzeichen eingegeben wird, und liefert nicht das gewünschte Ergebnis einer sofortigen Tastendruckübertragung.
Grundlegendes zur gepufferten Eingabe
Stdin ist normalerweise standardmäßig zeilengepuffert. Dies bedeutet, dass die Eingabe für das Programm erst dann verfügbar ist, wenn eine neue Zeile eingegeben wird. Dieses Verhalten gilt nicht nur für Go, sondern ist eine plattformspezifische Einstellung.
Alternative Lösungen
Das obige ist der detaillierte Inhalt vonWie streame ich Tastenanschläge an einen Kanal ohne Newline-Anforderung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!