Go - “文件块”和“包块”有什么区别?

规范提到:

每个包都有一个包块,其中包含该包的所有 Go 源文本。

每个文件都有一个文件块,其中包含该文件中的所有 Go 源文本。


package 块是以 package 子句开头的 Go 源文本

我的理解是每个 Go 源文本总是以 package 子句开头

“文件块”与“包块”有何不同?


白板的微信
浏览 55回答 1
1回答

拉风的咖菲猫

显而易见的答案是文件块包含文件的 Go 源文本,包块包含包的 Go 源文本。一个包是由一个或多个源文件构建的。规格: 包装:Go 程序是通过将包链接在一起构建的。一个包又是由一个或多个源文件构成的,这些源文件一起声明属于该包的常量、类型、变量和函数,并且可以在同一包的所有文件中访问。的确,无论源代码如何在其文件之间“分布”,一个包总是作为一个单元处理,但有些结构是“文件范围的”。规范:声明和范围:Go 的词法范围是使用块:[...]3. 导入包的包名称的范围是包含导入声明的文件的文件块。最明显的是进口申报。如果一个包由多个文件组成,并且您在一个文件中导入另一个包,则不能在另一个文件(同一包的)中使用它。另一个重要的构造是构建约束。放置在源文件中的构建约束仅适用于给定文件,而不适用于同一包中的其他文件。
打开App,查看更多内容
随时随地看视频慕课网APP