go - 在另一个 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)那样读取。
打开文件的正确方法是什么?
解决方案
您收到的错误表明您main()
在同一个包中有 2 个功能。
一个包可以有很多文件。当您.go
在运行命令的同一目录中有多个文件时go build
,编译器将构建main
包。在这种情况下,它检测到重复main()
的功能,因此构建失败。
您要做的是指定要构建的文件:
go build helloworld.go
指定文件后,go build
将仅使用您列出的文件进行构建。
有关go build
您的更多信息,请参阅Golang 文档。
推荐阅读
- angularjs - angular 1.5 到 angular10 的迁移,ngModel 不工作
- angular - @Select 嵌套对象和状态不变性
- c - 定义三角形类型的程序
- c# - 如何将 cookie 添加到 Web 客户端?
- angular - Angular Material mat-form-field 的轮廓和 mat-label 在第一次加载时不可见
- graph - Microsoft Graph API 在时间间隔内获取日历更改,按 lastModifiedDateTime 过滤
- android - 无法在本机反应中使用 expo-contacts 添加新联系人
- amazon-web-services - aws cloudformation - 遇到不受支持的属性 RequestValidatorId
- batch-file - 如何从 lua 脚本运行批处理行
- python - 用python生成整数的均匀分布