Напрямую написать массив1 = массив2 нельзя, об этом уже не раз говорилось.
Кроме того, конструкция return [массив] - тоже не допустима.
Но есть одна хистрость - если массив был передан функцию, то его можно вернуть, смотрим код:
Code:
sub main()
DIM arr1[1]
arr1[0] = "Testing"
var arr2 = CloneArray( arr1 )
uo.print( arr1[0] )
uo.print( arr2[0] )
endsub
Sub CloneArray( arr )
return arr
endsub
Создание копии массива - сама по себе вещь бесмысленная, но допустим - надо в две функции затолкать один и тот же массив, можно к тому же записать в переменную его длинну и всё одной функцией!
Code:
Sub ArrayOfSomething()
var count = 15 ; количество элементов в массиве
DIM arr[ val( str( count ) ) ]
; элементы массива
; ....
return count
endsub
sub function1()
DIM arr[100]
var count = ArrayOfSomething()
for var i=0 to count
; some code to listen the array
next
endsub
sub function2()
DIM arr[100]
var count = ArrayOfSomething()
for var i=0 to count
; some code to listen the array
next
endsub
Конечно, у такого подхода - всё равно есть недостатки.
Во-первых, перед вызовом функции необходимо объявить массив нужного размера, и только потом будет сообщена длинна массива, ну можно длинну массива вообще вне функции написать. Длинна - лишь пример демонстрирующий, что при всём этом никто не мешает возвращать значения.
Кроме того - в документации ясно сказано, что возвращать массив из функций - нельзя, а следовательно это может привести к не очень хорошим последствиям.
Зачем это всё-таки может понадобится ? Ситуаций может быть много, непосредственно клонирование массива - отрабатывает намного быстрее в таком виде, нежели полный перебор элементов.