1

Тема: Вызов в VBScript функции из массива

Есть такой простой пример:


dim new_arr(4), i, s

function new_fun(x,y)
    new_fun=x+y
end function

new_arr(0) = 0
new_arr(1) = "строка"
new_arr(2) = new_fun(x,y)
new_arr(3) = 100
new_arr(4) = #10/05/2000#

for each i in new_arr
    s = s & i & vbCrLf  
next

MsgBox s

Можно ли и как вызвать функцию new_fun из массива new_arr. В JScript это просто:


var arr = new Array(2);

fun_new = function(x,y){return x+y};

arr[0]=fun_new;
arr[1]=100;
arr[2]=20;

//Вызываем функцию
WScript.Echo (arr[0](4,10));

А как это в VBscript сделать?

2 (изменено: wisgest, 2013-06-15 00:56:22)

Re: Вызов в VBScript функции из массива

Set new_arr(0) = GetRef("new_fun")
MsgBox new_arr(0)(4, 10)

3

Re: Вызов в VBScript функции из массива

Еще такой вопрос по массивам:


Option Explicit

dim matrix
dim a, b

' Двухмерный массив
matrix = Array(Array(2,4,5), Array(8,5,99,6))

' верхняя граница
a = UBound(matrix)

' вернет  - выход за пределы, почему?
b = UBound(matrix,2)

' работает
MsgBox matrix(0)(1)
' вернет 1 !!! почему?
MsgBox a

Почему функция UBound неверно определяет границу массива для первого измерения и не хочет определять для второго? Или я просто что то не так делаю?

4

Re: Вызов в VBScript функции из массива

В ошибке разобрался, в данном примере я создал массив массивов.