dictionary - 从标准输入中读取 map key

标签 dictionary go stdin

我有一个从字符串到整数的映射,我想通过从stdin读取键来选择一个值。很简单,您可能会说:

  package main
  import (
           "os"
           "bufio"
           "fmt"
  )
 
 func main() {
         m := map[string]int {
                 "Hello": 1,
                 "Map": 2,
         }
 
         reader := bufio.NewReader(os.Stdin)
         text, err := reader.ReadString('\n')
 
         if err != nil {
                 fmt.Println("Error", err)
                 return
         }
 
         fmt.Println(m[text])
 }
当向控制台写入“Hello”时,将输出0,而不是1。

最佳答案

如果我猜的话,可以使用reader.ReadString将用户输入追加到\n。所以text字段最终是Hello\n使用budio.NewScanner()可解决此问题:

func main() {
    m := map[string]int{
        "Hello": 1,
        "Map":   2,
    }

    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    text := scanner.Text()

    fmt.Println(m[text])
}
输出:
$ go run main.go
Hello
1

关于dictionary - 从标准输入中读取 map key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63237682/

相关文章:

mongodb - $ in不使用mongodb比较golang中的所有值

javascript - 如何在 Go 中访问网站特定的 Javascript 对象?

c - 从 stdin 读取是否刷新 stdout?

c++ - 将一个程序的输出通过管道传输到另一个程序不适用于该特定程序

python - 如何从文件中读取带有字符串键和元组值的字典?

LINQ Group By 到字典对象中

c++ - 为什么在插入 map 时出现段错误?

go - 无法从 Golang 运行 bash `read` 命令

c - 在 stdin 中使用 fflush() 是非法的吗?该怎么办?

python - 嵌套字典理解