os.Stdin
является io.Reader
.Вы не можете преобразовать его в []byte
, но вы можете прочитать из него и данные, которые вы читаете из него, которые могут быть прочитаны в []byte
.
.во многих терминалах чтение из os.Stdin
дает данные построчно, вы должны прочитать из них полную строку.Чтение из os.Stdin
может блокировать до тех пор, пока не будет доступна полная строка.
Для этого у вас есть много возможностей, можно использовать bufio.Scanner
.
Вот какВы можете сделать это:
scanner := bufio.NewScanner(os.Stdin)
if !scanner.Scan() {
log.Printf("Failed to read: %v", scanner.Err())
return
}
line := scanner.Bytes() // line is of type []byte, exactly what you need