找回密码
 加入
搜索
楼主: zcsgamer

[AU3基础] 关于变量作用域的几个疑问

 火... [复制链接]
 楼主| 发表于 2012-9-24 14:40:23 | 显示全部楼层
回复 15# annybaby


    我试了试好像也没有什么区别,可能是我代码写的不对,就不拿出来了,你能不能给段代码例子?
发表于 2012-9-26 19:13:38 | 显示全部楼层
顶起来,挣分
发表于 2012-9-27 10:56:09 | 显示全部楼层
默认情况下,Dim 声明的变量或在函数内部直接赋值而成的变量都是局部变量(除非有同名的全局变量存在时将视视为全局变量)。Local 和 Global 是强制变量的作用域。但局部和全局不是绝对的。当局部占全部的100%时就是全局。如local声明所处位置为程序的开头时,就像排头的大雁,统领全局,其作用域就是全局,此时与blobal相同。所以不用死扣名称上的表面意思。
发表于 2012-10-7 15:19:20 | 显示全部楼层
AU3帮助里的东西
变量的作用域
某个变量的作用域要看您是何时以及如何声明该变量的. 如果您在脚本开头且在所有函数之外声明了某个变量 则该变量将在Global(全局)范围内存在,此时您就可以在脚本的任意位置读取或更改该变量, 我们把这种变量称为全局变量.

如果您是在某个 函数 内部声明一个变量则该变量就只在该函数的 Local(局部) 范围内有效,我们把这种变量称为局部变量. 在函数内创建的变量将在函数结束时 自动被销毁.

在默认情况下,使用 Dim 声明的变量或在函数内部直接赋值而成的变量都是 Local(局部)变量,除非 有同名的全局变量存在(此时将视此变量为该全局变量).  另外我们可以使用关键字 Local 和 Global 来声明变量以 强制 变量的作用域.
发表于 2012-10-7 15:21:50 | 显示全部楼层
回复 9# zcsgamer
Dim,Local,Global 这三者的不同之处在于其声明变量的作用域:
Dim = 如果同名的全局变量并不存在则作用域为局部(如果已有同名的全局变量存在则将复用该变量!)
Global = 将创建的变量的作用域强制转换为全局的
Local = 将创建的变量的作用域强制转换为 局部/函数 的

您应该更多的使用 Local 或者 Global, 而不是 Dim, 这样能够更清楚的了解每个已经声明的 变量/常数/数组的作用范围.

在使用变量时程序将首先检查其局部作用域然后再检查其全局作用域.
发表于 2012-10-10 08:30:10 | 显示全部楼层
回复 23# chxwmxtw


    在这些地方发广告没啥效果的!!

评分

参与人数 1金钱 +20 收起 理由
oxygen + 20 厉害、佩服

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 18:54 , Processed in 0.076507 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表