CHEARV 发表于 2013-10-6 23:20:08

Eval 可以用于数组吗?

本帖最后由 CHEARV 于 2013-10-7 20:04 编辑

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

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

有没有类似这样的代码可以通过呢?

Ycxw2008 发表于 2013-10-7 00:52:21

不知道为什么要这样获取?
用意是什么哦?

gto250 发表于 2013-10-7 10:07:41


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

$j = Execute($s)
MsgBox(0, $s, $j)

CHEARV 发表于 2013-10-7 19:58:02

回复 3# gto250

看了一下,这个好像是计算表达式的值。可能是我没有表达清楚,我需要的是通过Eval来给数组赋值。

gto250 发表于 2013-10-7 20:47:55

给指定变量赋值.


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


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

Assign的变量名不能是一个数组元素!
所以好像行不通了。为什么要用那么复杂的方式呢,直接数组赋值不是很方便?

东风破 发表于 2013-10-7 22:02:24

回复 3# gto250


    哈哈哈,元老就是元老。前天花了一下午才弄明白Execute Eval 的区别

CHEARV 发表于 2013-10-8 13:01:30

回复 5# gto250

哦,看来是行不通了。

我主要是想省写代码。这样容易修改。 既然不行,那我试试写自定义函数吧。谢谢元老了。
页: [1]
查看完整版本: Eval 可以用于数组吗?