如何在Go中等待命令行输入

use*_*602 4 go

我想显示一个“>”,然后让程序等待用户在命令行中键入内容并按Enter键(最终将其存储为字节片)。在Java中,我将执行以下操作:

Scanner scanner = new Scanner(System.in);

System.out.print("> ");
String sentence = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些涉及os.Args, console.ReadBytes('\n')和的事情bufio.NewReader(os.Stdin),但是我仍然没有弄清楚。任何建议将不胜感激。谢谢。

Ste*_*erg 8

一些Go代码可能会对您有所帮助,因此我可以告诉您您做错了什么。但是这是您在Go中的操作方式:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    buf := bufio.NewReader(os.Stdin)
    fmt.Print("> ")
    sentence, err := buf.ReadBytes('\n')
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(string(sentence))
    }
}
Run Code Online (Sandbox Code Playgroud)