Golang新手使用bufio时遇到的编译错误问题
Golang新手使用bufio时遇到的编译错误问题 我刚开始学习Go语言(已有40年编程经验)。正在学习《Head First Go》这本书。
我的版本信息:go version go1.12.7 windows/amd64
我当前的简单测试用例是这样的:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Print("Enter a grade: ")
reader := bufio.NewReader(os.Stdin)
input := reader.ReadString('\n')
fmt.Println(input)
}
当我对此运行"go run"时,出现以下错误:
bytes
c:\go\src\bytes\bytes_decl.go:10:6: 在此块中重复声明了IndexByte 之前的声明位于 c:\go\src\bytes\bytes.go:101:34 c:\go\src\bytes\bytes_decl.go:17:6: 在此块中重复声明了Equal 之前的声明位于 c:\go\src\bytes\bytes.go:18:25 c:\go\src\bytes\bytes_decl.go:24:6: 在此块中重复声明了Compare 之前的声明位于 c:\go\src\bytes\bytes.go:37:27
更多关于Golang新手使用bufio时遇到的编译错误问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
没关系,看起来我的Go安装损坏了。我以为今天是我第一次安装它,但有迹象表明我这个月早些时候已经安装过(可能当时1.11是最新版本?)。我卸载了它(并确保c:\go目录已删除),然后重新安装,现在我的测试用例可以正常工作了。
更多关于Golang新手使用bufio时遇到的编译错误问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这是一个典型的Go安装损坏问题,不是你的代码逻辑错误。错误信息显示标准库中的bytes包存在重复声明,这表明你的Go安装可能不完整或已损坏。
解决方案是重新安装Go:
- 完全卸载当前Go版本
- 从官方下载页面下载Go 1.12.7或更新的稳定版本
- 重新安装并设置环境变量
你的代码本身是完全正确的,这里是一个验证示例:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Print("Enter a grade: ")
reader := bufio.NewReader(os.Stdin)
input, _ := reader.ReadString('\n')
fmt.Printf("You entered: %s", input)
}
重新安装Go后,这段代码应该能正常运行。bufio.NewReader配合os.Stdin是从标准输入读取数据的标准方式,ReadString('\n')会读取直到换行符的内容。
如果重新安装后仍有问题,检查:
- 环境变量
GOROOT和GOPATH设置是否正确 - 是否有多个Go版本冲突
- 系统PATH中是否指向了正确的Go安装目录

