Go运行报错“# command-line-arguments“解决方案

在 Windows 下使用 GoLand 开发时,如果同一个包(main 包)内有多个 .go 文件,每个文件都有 main() 函数,会导致编译错误。这是因为 main 包内的不同文件代码不能互相调用。解决方法是通过同时选择 main 包下的所有文件,使用 Ctrl+鼠标右键点击运行,确保所有文件一起被编译和执行。

问题描述(windows下):

使用goland开始,同一个包有两个或者两个以上的.go文件,包名为main,点击其中一个main()方法报错如下图。

 

 

问题原因:

main 包中的不同的文件的代码不能相互调用,其他包可以。所以其实student.go没有被一起编译执行

问题解决:

用goland开发的,键盘按住Ctrl,鼠标同时选中main包下所有的文件,右键点击运行即可

 

### 解决 'Work' 重复声明问题 在 Go 语言中,同一个作用域内不允许重复声明同一个标识符。错误信息 `cat\test.go:8:6: Work redeclared in this block, cat\cat.go:5:6: other declaration of Work` 表明 `Work` 在 `cat.go` 和 `test.go` 文件中被重复声明了。可以通过以下几种方式解决: #### 重命名标识符 若 `Work` 在不同上下文中有不同用途,可对其中一个进行重命名。 - `cat.go` ```go package cat func Work() { // 函数实现 } ``` - `test.go` ```go package cat func WorkInTest() { // 函数实现 } ``` #### 合并声明 若 `Work` 的功能相同,可将声明合并到一个文件中。 - `cat.go` ```go package cat func Work() { // 函数实现 } ``` - `test.go` ```go package cat // 移除重复的 Work 声明 func AnotherFunction() { // 函数实现 } ``` ### 解决 'test' 未定义问题 错误信息 `# command-line-arguments, .\app.go:7:2: undefined: test` 表明在 `app.go` 文件的第 7 行第 2 列使用了未定义的标识符 `test`。可以通过以下方式解决: #### 检查是否导入了必要的包 若 `test` 是某个包中的标识符,需要确保在 `app.go` 文件中正确导入了该包。 ```go package main import ( "package_containing_test" ) func main() { // 使用 test package_containing_test.test() } ``` #### 检查是否定义了 `test` 若 `test` 是自定义的标识符,需要确保在使用之前已经定义。 ```go package main func test() { // 函数实现 } func main() { test() } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值