Open SyMind opened 1 year ago
Go 通过 block 实现词法作用域:
在 block 中声明的标识符可以在内部 block 中重新声明。虽然内部声明的标识符在作用域内,但它表示内部声明所声明的实体。
package clause 不是声明;包名称不出现在任何作用域内。其目的是识别属于同一包的文件并为导入声明指定默认的包名称。
一个 block 匹配一个大括号内可能为空的声明和语句序列。
Block = "{" [StatementList](https://go.dev/ref/spec#StatementList) "}" . StatementList = { [Statement](https://go.dev/ref/spec#Statement) ";" } .
除了源代码中的显式的 block 外,还有隐式的 block:
作用域
Go 通过 block 实现词法作用域:
在 block 中声明的标识符可以在内部 block 中重新声明。虽然内部声明的标识符在作用域内,但它表示内部声明所声明的实体。
package clause 不是声明;包名称不出现在任何作用域内。其目的是识别属于同一包的文件并为导入声明指定默认的包名称。
Block
一个 block 匹配一个大括号内可能为空的声明和语句序列。
除了源代码中的显式的 block 外,还有隐式的 block: