Maison > Article > développement back-end > Comment diffuser des frappes sur une chaîne sans exigence de nouvelle ligne ?
Diffusion de frappes de touches d'entrée sur un canal sans exigence de nouvelle ligne
Les frappes de touches saisies dans l'entrée standard (stdin) sont généralement mises en mémoire tampon, ce qui signifie qu'elles sont uniquement envoyées à un canal lorsqu'un caractère de nouvelle ligne est saisi. Cependant, dans certaines situations, il peut être souhaitable d'envoyer chaque frappe directement au canal sans attendre une nouvelle ligne.
Approche initiale et son inconvénient
Le code initial fourni dans la question, destiné à envoyer des frappes au clavier à un canal, utilisait le lecteur bufio.NewReader(os.Stdin) avec reader.ReadByte(). Cette méthode se bloque jusqu'à ce qu'un caractère de nouvelle ligne soit saisi, ne fournissant pas le résultat souhaité de transmission immédiate de la frappe.
Comprendre l'entrée tamponnée
Stdin est généralement mis en mémoire tampon de ligne par défaut. Cela signifie que l'entrée n'est pas immédiatement disponible pour le programme jusqu'à ce qu'une nouvelle ligne soit entrée. Ce comportement n'est pas unique à Go mais constitue un paramètre spécifique à la plateforme.
Solutions alternatives
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!