登录
首页 >  Golang >  Go问答

错误的包名称不会在构建时引发错误

来源:stackoverflow

时间:2024-04-02 12:51:37 315浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《错误的包名称不会在构建时引发错误》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

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

package test

import "fmt"

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

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


解决方案


包名test没有错误,根据Spec: Package clause:有效

PackageClause  = "package" PackageName .
PackageName    = identifier .

test 是一个有效的 go 标识符。

go build main.go 是做什么的?

通常,您会列出 go build 的软件包,但您也可以列出 .go 源文件,就像您的示例中一样。

引用 go 帮助构建

因此 go build 只是构建了 test 包,其中包含单个 main.go 源文件。将 main() 函数添加到不是 main 的包中并不是错误。

至于为什么“什么也没发生”:如果一切正常,go build 不会生成任何输出,如果出现问题,它会输出错误。 go build 应用于非 main 软件包只是“检查”该软件包是否可以构建,但它会丢弃结果。请查What does go build build?

今天关于《错误的包名称不会在构建时引发错误》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>