規范提到:
每個包都有一個包塊,其中包含該包的所有 Go 源文本。
每個檔案都有一個檔案塊,其中包含該檔案中的所有 Go 源文本。
package 塊是以 package 子句開頭的 Go 源文本
我的理解是每個 Go 源文本總是以 package 子句開頭
“檔案塊”與“包塊”有何不同?
uj5u.com熱心網友回復:
顯而易見的答案是檔案塊包含檔案的 Go 源文本,而包塊包含包的 Go 源文本。一個包是由一個或多個源檔案構成的。
規格: 包裝:
Go 程式是通過將包鏈接在一起來構建的。一個包又由一個或多個源檔案構成,這些源檔案一起宣告了屬于該包的常量、型別、變數和函式,并且可以在同一包的所有檔案中訪問。
確實,無論源代碼如何在其檔案之間“分布”,一個包總是作為一個單元處理,但是有些結構是“檔案范圍的”。規格:宣告和范圍:
Go 的詞法范圍使用塊:
[...]
3. 匯入包的包名的范圍是包含匯入宣告的檔案的檔案塊。
最明顯的是進口申報。如果一個包由多個檔案組成,并且您在一個檔案中匯入另一個包,則不能在另一個檔案(同一個包)中使用它。
另一個重要的構造是構建約束。放置在源檔案中的構建約束僅適用于給定檔案,而不適用于同一包中的其他檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/453011.html
標籤:走
