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

标签 go

我想显示一个“>”,然后让程序等待用户在命令行中键入内容并按下回车键(并最终将其存储为 byte slice )。在 Java 中,我会做类似的事情:

Scanner scanner = new Scanner(System.in);

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

我尝试了一些涉及 os.Args、console.ReadBytes('\n')bufio.NewReader(os.Stdin) 的方法,但我还是没弄明白。任何建议将不胜感激。谢谢。

最佳答案

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

关于go - 如何在 Go 中等待命令行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18936662/

相关文章:

go - 从 interface{} 获取底层 reflect.Value

sqlite - 如何有两个GORM session 到同一个内存数据库?

go - 如何在 "go get -d"之后构建?

go - -bash : set: -g: invalid option when I setting GOPATH

templates - 如何打印包含点的键的值

go - 尝试将结构映射到我公开的 API 结构

Go程序未使用1.4.2静态链接

go - 没有为数字 golang 设置位

go - 每小时准确返回一个值的函数

go - 使用 string() 时添加随机字节