Отправить stdin нажатия клавиш на канал без новой строки требуется

Я хотел бы отправлять нажатия клавиш пользователя на канал непосредственно после того, как каждое отдельное нажатие клавиши вводится на стандартный ввод.

Я пытался выполнить приведенный ниже код, но это не дает желаемого результата, посколькуreader.ReadByte() метод блокируется до ввода новой строки.

func chars() <-chan byte {
    ch := make(chan byte)
    reader := bufio.NewReader(os.Stdin)
    go func() {
        for {           
            char, err := reader.ReadByte()
            if err != nil {
                log.Fatal(err)
            }
            ch <- char
        }
    }()
    return ch
}

Спасибо за любой совет о том, как я могу заставить каждый пользовательский символ ввода немедленно перейти на канал без необходимости символа новой строки.

Ответы на вопрос(2)

Ваш ответ на вопрос