差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
wiki:reference:grammar:namespace:main_page [2021/06/19 21:31] – mikecovlee | wiki:reference:grammar:namespace:main_page [2021/06/19 21:56] (当前版本) – mikecovlee | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Covariant Script 作用域和命名空间 ====== | ||
+ | ----- | ||
+ | \\ | ||
+ | ===== 4.1 定义(definition) ===== | ||
+ | |||
+ | <code python> | ||
+ | block | ||
+ | 语句块 | ||
+ | end | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== 定义一个临时作用域 ===== | ||
+ | |||
+ | 临时作用域中的变量会在离开作用域后销毁 | ||
+ | |||
+ | <code csharp> | ||
+ | namespace 命名空间名 | ||
+ | 语句块 | ||
+ | end | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ==== 定义一个命名空间 ==== | ||
+ | |||
+ | 命名空间中只允许引入其他命名空间,变量定义,函数定义,类型定义以及命名空间定义 | ||
+ | |||
+ | <code csharp> | ||
+ | using 命名空间名 | ||
+ | </ | ||
+ | |||
+ | 引入一个命名空间,这将会在当前作用域中建立引入的命名空间中所有变量的引用 | ||
+ | ----- | ||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== 4.2 名称查找 ===== | ||
+ | |||
+ | ==== 变量名 ==== | ||
+ | |||
+ | === 从最上层作用域开始向下查找变量 === | ||
+ | |||
+ | <code java> | ||
+ | local.变量名 | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | === 查找当前作用域中的变量 === | ||
+ | |||
+ | <code python> | ||
+ | global.变量名 | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | === 查找全局作用域中的变量 === | ||
+ | |||
+ | <code java> | ||
+ | 命名空间名.变量名 | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | === 查找命名空间中的变量 === | ||
+ | |||
+ | <code java> | ||
+ | 变量名.变量名 | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | === 查找结构体或扩展中的变量 === | ||
+ | |||
+ | 作用域结构以及变量查找方式如图所示 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | <div style=" | ||
+ | |||
+ | < | ||
+ | 也就是说:< | ||
+ | 除此之外,支持扩展的类型将自动调用无参数的成员访问函数(无需填写任何参数)< | ||
+ | 也就是说:< | ||
+ | 这种< | ||
+ | </ | ||
+ | </ |