Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Go中等待命令行输入_Go - Fatal编程技术网

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

如何在Go中等待命令行输入,go,Go,我想显示一个“>”,然后让程序等待用户在命令行中键入一些内容,然后按enter键(并最终将其存储为字节片)。在Java中,我会做如下工作: Scanner scanner = new Scanner(System.in); System.out.print("> "); String sentence = scanner.nextLine(); 我尝试了一些涉及os.Args、console.ReadBytes('\n')和bufio.NewReader(os.Stdin)的方法,但我

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

Scanner scanner = new Scanner(System.in);

System.out.print("> ");
String sentence = scanner.nextLine();

我尝试了一些涉及
os.Args、console.ReadBytes('\n')
bufio.NewReader(os.Stdin)
的方法,但我仍然没有找到答案。如有任何建议,将不胜感激。谢谢。

一些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))
    }
}

如果您想要一个字符串,那么也可以使用buf.ReadString('\n')。然后可以将输入代码放入一个循环中,沿通道将其文本行发送到消费goroutine。这种添加提供了一种自然并发的方式来表达对用户输入的处理。