找回密码
 加入
搜索
查看: 3621|回复: 7

[AU3基础] 关于AU3的动态数组,还是有些模糊...?[已解决]

  [复制链接]
发表于 2016-10-25 21:16:53 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2017-3-18 09:39 编辑

VB里对动态数组有相对多的描述。如下:
建立动态数组的方法是:
利用Dim语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。
语法是:
ReDim  数组名[下标1[,下标2…]]
其中下标可以是常量,也可以是有了确定值的变量。
例: 
Dim $Arr[]
……
ReDim #arr[4,6]

2.注意事项
(1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量;
(2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。
(3)每次使用ReDim语句都会使原来数组中的值丢失.
     可以在ReDim语句后加Preserve参数来保留数组中的数据
     但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。

在AU3里好像讲得很少,找到Redim的描述。如下:
ReDim
调整现有数组的大小.
ReDim 数组[索引 1]...[索引 n]

参 数
数组 目标数组名称.
索引 数组维数的元素数量, 元素索引 0 到 n-1.

备 注
关键字 ReDim 的作用类似 Global/Local, 但 ReDim 调整数组大小时保存数组的值, 而不是删除值.
数组的维数必须保持一致, 否则 ReDim 将丢失旧的数组内容.
数组调整大小后其作用域(Global 或者 Local)维持不变.


基本上都是概念性的讲述,总感觉不是太明晰。
不知道VB和AU3的动态数组,是不是区别不大---------------------------------------------------
以二维数组为例,VB里比较强调以下3点:
1、ReDim[]中的下标必须有确定值(常量或已赋值变量),否则留空
2、只能改变第二维大小
3、要用Preserve来保留原数组数据
发表于 2016-10-25 23:16:20 | 显示全部楼层
redim就是重新定义的意思
 楼主| 发表于 2016-10-26 15:20:39 | 显示全部楼层
redim就是重新定义的意思
chamlien 发表于 2016-10-25 23:16

同样是redim,用起来不一定没区别吧,好像AU3里几乎没有动态数组和静态数组这些概念。如果真没区别就好了....
发表于 2016-10-26 17:58:28 | 显示全部楼层
你自己写个试一下不就知道了
发表于 2016-10-26 22:36:57 | 显示全部楼层
没什么区别的,AU3对变量、数组的定义都是弱语言,没必要这么纠结吧
发表于 2016-10-27 08:00:54 | 显示全部楼层
有没有考虑使用 Dictionary 对象?
http://www.autoitx.com/thread-37424-1-1.html
 楼主| 发表于 2016-10-27 11:25:28 | 显示全部楼层
有没有考虑使用 Dictionary 对象?
chishingchan 发表于 2016-10-27 08:00

感谢chishingchan老师指点!
因为对VB及VBA有一些些了解,所以对字典也不算陌生,用起来确实很方便。
只是现在刚开始接触AU3,在了解和熟悉AU3的思维和语言规则的阶段,暂时还不能两边自由飘移哇,不然的话,搞不好就有点晕菜,混为一团,出问题都不知道咋回事
 楼主| 发表于 2016-10-27 11:29:49 | 显示全部楼层
没什么区别的,AU3对变量、数组的定义都是弱语言,没必要这么纠结吧
chamlien 发表于 2016-10-26 22:36

倒也不是纠结啥,只是想概念上明晰一些,至少能知道官方在那三点上有什么异同吧。赶脚AU3的数组从形式到定义都有特点,知道得清楚些以后也好少出点错....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-25 10:31 , Processed in 0.090226 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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