显示页面修订记录反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== Covariant Script 作用域和命名空间 ====== ===== 4.1 定义(definition) ===== <code python> block 语句块 end </code> \\ ===== 定义一个临时作用域 ===== 临时作用域中的变量会在离开作用域后销毁 <code csharp> namespace 命名空间名 语句块 end </code> \\ ==== 定义一个命名空间 ==== 命名空间中只允许引入其他命名空间,变量定义,函数定义,类型定义以及命名空间定义 <code csharp> using 命名空间名 </code> 引入一个命名空间,这将会在当前作用域中建立引入的命名空间中所有变量的引用 ----- \\ ===== 4.2 名称查找 ===== ==== 变量名 ==== === 从最上层作用域开始向下查找变量 === <code java> local.变量名 </code> \\ === 查找当前作用域中的变量 === <code python> global.变量名 </code> \\ === 查找全局作用域中的变量 === <code java> 命名空间名.变量名 </code> \\ === 查找命名空间中的变量 === <code java> 变量名.变量名 </code> \\ === 查找结构体或扩展中的变量 === 作用域结构以及变量查找方式如图所示 {{:manual:reference:grammar:namespace:r4.2.png?nolink&400|}} <html> <div style=" border-style: solid; border-color: #d1f4ff; background-color: #ecfcff; border-width: medium; border-radius: 3px; padding: 12px;"> <b>注意</b>,对于最后一种访问方法,仅变量类型为结构或支持扩展的类型时可用,如访问的是扩展或结构中的函数,将会自动把点运算符左边的变量作为函数的第一个参数传入。<br> 也就是说:<b>char.isspace(ch)</b> 等价于<b>ch.isspace()</b><br> 除此之外,支持扩展的类型将自动调用无参数的成员访问函数(无需填写任何参数)<br> 也就是说:<b>string.size(str)</b>等价于 <b>str.size</b><br> 这种<b>“域下常规函数转成员函数”</b>(函数/变量)的行为我们称之为<b>“成员访问器”</b>(Member Visitor)<br> </div> </html> 登录