首页 > 解决方案 > 在另一个 go 程序中打开一个 go 文件

问题描述

我正在使用“Go 编程语言”一书学习 Go。第一章介绍os.Open了读取文件的模块。我尝试打开如下所示的 go 文件。

  f, err = os.Open("helloworld.go")

我收到以下错误:

   # command-line-arguments
.\helloworld.go:6:6: main redeclared in this block
        previous declaration at .\dup2.go:10:6

我想了解为什么 go 表现得好像它正在尝试编译文件而不是像其他语言(Python、Java 或 C)那样读取。

打开文件的正确方法是什么?

标签: go

解决方案


您收到的错误表明您main()在同一个包中有 2 个功能。
一个包可以有很多文件。当您.go在运行命令的同一目录中有多个文件时go build,编译器将构建main包。在这种情况下,它检测到重复main()的功能,因此构建失败。

您要做的是指定要构建的文件:

go build helloworld.go

指定文件后,go build将仅使用您列出的文件进行构建。

有关go build您的更多信息,请参阅Golang 文档


推荐阅读