Golang报错:命令行参数包不是主包该如何解决
Golang报错:命令行参数包不是主包该如何解决
我是Go编程的新手,最近在学习《Caleb的Go语言入门》时遇到了这个错误信息:package command-line-arguments is not a main package
以下是我试图运行的代码:
package ammar
import "fmt"
func main() {
fmt.Println(true && true)
fmt.Println(true && false)
fmt.Println(true || true)
fmt.Println(true || false)
fmt.Println(!true)
}
如果有人能提供解决方案,我将不胜感激!谢谢!
更多关于Golang报错:命令行参数包不是主包该如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html
4 回复
谢谢!我的包名可以是任意名称,还是必须始终是 main?另外,我的包名和函数名需要相同吗?
更多关于Golang报错:命令行参数包不是主包该如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
错误信息已经告诉了你问题所在。
你的代码不是一个名为“main”的包。请使用 package main 作为第一行。
func main() {
fmt.Println("hello world")
}
包名可以是任意标识符,但如果你希望一个包作为可执行程序的入口点,它必须命名为“main”并且包含一个没有参数和返回类型的 main() 函数。
这个错误是因为你的包声明不正确。要运行Go程序,必须使用package main而不是自定义的包名。
以下是修正后的代码:
package main // 必须使用main作为包名
import "fmt"
func main() {
fmt.Println(true && true)
fmt.Println(true && false)
fmt.Println(true || true)
fmt.Println(true || false)
fmt.Println(!true)
}
关键点:
- 可执行程序必须声明为
package main - 入口函数必须是
func main() - 保存文件时,文件名可以是任意的,但通常使用
main.go
运行步骤:
# 编译并运行
go run main.go
# 或者先编译再执行
go build -o myprogram main.go
./myprogram
如果你确实想创建名为ammar的库包,那么需要:
- 移除
main函数 - 在其他
main包中导入并使用它 - 不能直接运行,只能作为库被其他程序调用

