找回密码
 加入
搜索
查看: 5753|回复: 6

[AU3基础] Eval 可以用于数组吗?

  [复制链接]
发表于 2013-10-6 23:20:08 | 显示全部楼层 |阅读模式
本帖最后由 CHEARV 于 2013-10-7 20:04 编辑
Dim $a[2][2] = [[1, 2],[3, 4]]
Dim $i = 1
Dim $s = 'a' & '[$i]' & '[1]'

$j = Eval($s)
MsgBox(0, $s, $j)
之前的提问没表达清楚,现在补充一下,我的是需要给修改数组$a[1][1]的值, 但不想通过 $a[1][1] =  6 这种方法操作,但用 Eval($s) = 6    或者用  Assign($s,6)  
语法都通不过。

有没有类似这样的代码可以通过呢?
发表于 2013-10-7 00:52:21 | 显示全部楼层
不知道为什么要这样获取?
用意是什么哦?
发表于 2013-10-7 10:07:41 | 显示全部楼层

Dim $a[2][2] = [[1, 2],[3, 4]]
Dim $i = 1
Dim $s = '$a['&$i&'][1]'

$j = Execute($s)
MsgBox(0, $s, $j)
 楼主| 发表于 2013-10-7 19:58:02 | 显示全部楼层
回复 3# gto250

看了一下,这个好像是计算表达式的值。可能是我没有表达清楚,我需要的是通过Eval来给数组赋值。
发表于 2013-10-7 20:47:55 | 显示全部楼层
给指定变量赋值.


Assign ( "变量名", "数据" [, 标志] )


参数
变量名 您需要赋值的变量名. 不能是一个数组元素.
数据 您需要给变量名赋予的值(数据).
标志 [可选参数] 控制变量赋值的方式(可把所需选项对应数值相加):
0 = (默认) 如果目标变量不存在,则创建请求的变量.
1 = 强制创建为局部作用域变量.
2 = 强制创建为全局作用域变量.
4 = 若目标变量并不存在则放弃赋值.

Assign的变量名不能是一个数组元素!
所以好像行不通了。为什么要用那么复杂的方式呢,直接数组赋值不是很方便?
发表于 2013-10-7 22:02:24 | 显示全部楼层
回复 3# gto250


    哈哈哈,元老就是元老。前天花了一下午才弄明白Execute Eval 的区别
 楼主| 发表于 2013-10-8 13:01:30 | 显示全部楼层
回复 5# gto250

哦,看来是行不通了。

我主要是想省写代码。这样容易修改。 既然不行,那我试试写自定义函数吧。谢谢元老了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-6 13:21 , Processed in 0.074614 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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