我是golang的新手,现在开始学习。我正在阅读“The Go Programming Language”一书,并尝试在Mac上运行dup1示例。但是我注意到一个非常奇怪的问题。计数的输出包含一个额外的“D”。有人知道为什么吗?

> go run dup1New.go                                                                                                                                test
test
test
hello
hello
world
3D      test
2   hello
> cat dup1New.go
package main

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

func main() {
    counts := make(map[string]int)
    input := bufio.NewScanner(os.Stdin)
    for input.Scan() {
        counts[input.Text()]++
    }
    // NOTE: ignoring potential errors from input.Err()
    for line, n := range counts {
        if n > 1 {
            fmt.Printf("%d\t%s\n", n, line)
        }
    }
}

go版本go1.13.5 darwin/amd64

最佳答案

您从Ctrl + D获得D字符的原因是终端设备界面中的echoctl选项。您可以通过在shell/终端中运行以下命令轻松地将其删除:

stty -echoctl

引用:man stty

关于go - 多余的 'D'来自dup1.go的哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59624213/

10-11 08:03