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)
}

关键点:

  1. 可执行程序必须声明为package main
  2. 入口函数必须是func main()
  3. 保存文件时,文件名可以是任意的,但通常使用main.go

运行步骤:

# 编译并运行
go run main.go

# 或者先编译再执行
go build -o myprogram main.go
./myprogram

如果你确实想创建名为ammar的库包,那么需要:

  1. 移除main函数
  2. 在其他main包中导入并使用它
  3. 不能直接运行,只能作为库被其他程序调用
回到顶部