Go 不正确的包名未在生成时引发错误

Go 不正确的包名未在生成时引发错误,go,Go,考虑到示例hello world的包名错误,文件名为main.go package test import "fmt" func main() { fmt.Println("hello world") } 在go build main.go上,由于包名不正确,生成无法工作(不生成可执行文件)。但是为什么没有抛出错误?包名测试不正确,根据 test是有效的Go标识符 至于去构建main.go做什么 通常,您会列出要生成的包,但也可以列出源文件,如示例所示 引用自转到帮助构建: 如果要

考虑到示例hello world的包名错误,文件名为
main.go

package test

import "fmt"

func main() {
    fmt.Println("hello world")
}

go build main.go上,由于包名不正确,生成无法工作(不生成可执行文件)。但是为什么没有抛出错误?

包名
测试
不正确,根据

test
是有效的Go标识符

至于
去构建main.go
做什么

通常,您会列出要生成的包,但也可以列出源文件,如示例所示

引用自
转到帮助构建

如果要生成的参数是.go文件的列表,则build将其视为指定单个包的源文件列表

因此,
go build
只需构建您的
test
包,它由一个
main.go
源文件组成。将
main()
函数添加到非
main
的包中不是错误


至于“什么都没发生”的原因:
go build
在一切正常的情况下不生成输出,而在某些不正常的情况下输出错误
go build
应用于非
main
包时,只需“检查”包是否可以生成,但会放弃结果。请检查

包名
测试
是否正确,根据

test
是有效的Go标识符

至于
去构建main.go
做什么

通常,您会列出要生成的包,但也可以列出源文件,如示例所示

引用自
转到帮助构建

如果要生成的参数是.go文件的列表,则build将其视为指定单个包的源文件列表

因此,
go build
只需构建您的
test
包,它由一个
main.go
源文件组成。将
main()
函数添加到非
main
的包中不是错误


至于“什么都没发生”的原因:
go build
在一切正常的情况下不生成输出,而在某些不正常的情况下输出错误
go build
应用于非
main
包时,只需“检查”包是否可以生成,但会放弃结果。请检查

您预计会出现什么错误?这里没有无效的内容。如果它不生成生成生成文件,意味着它失败了吗?实际上,我是新手。它是在编译包,而不是编译成可执行文件(因为包不是“main”)。这就是它应该做的。你会期望出现什么错误?这里没有无效的内容。如果它不生成生成生成文件,意味着它失败了吗?实际上,我是新手。它是在编译包,而不是编译成可执行文件(因为包不是“main”)。这就是它应该做的。我的意思是它无法生成生成文件。代码中没有语法错误。我将浏览链接。@KrishnadasPC
go build
不应为非主包生成任何内容。所以它工作正常。我的意思是它无法生成生成文件。代码中没有语法错误。我将浏览链接。@KrishnadasPC
go build
不应为非主包生成任何内容。因此,它的工作正如预期的那样。
PackageClause  = "package" PackageName .
PackageName    = identifier .