AutoIt Получить подмассив из массива - PullRequest
2 голосов
/ 13 февраля 2011

Простой кусок кода, в котором мы хотим сохранить элемент массива (который, в свою очередь, является другим массивом) в другой переменной:

Global $arr[1][2] = [ [1, 2] ]
Global $sub = $arr[0]

И мы получим

Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
Global $sub = $arr[0]
Global $sub = ^ ERROR

Если мы напишем

Global $arr[1][2] = [ [1, 2] ]
Global $sub[2] = $arr[0]

Мы получим

Missing subscript dimensions in "Dim" statement.:
Global $sub[2] = $arr[0]
Global $sub[2] = ^ ERROR

Такая простая задача, но я не нашел способ, как я могу это сделать.Не имеют ни малейшего представления о.Пожалуйста, помогите.

1 Ответ

5 голосов
/ 13 февраля 2011

Вы создаете многомерный массив с двумя измерениями, а не массив внутри массива.Разница между ними заключается в следующем:

  • Многомерный массив:

    Local $arr[1][2] = [ [1, 2] ]
    Local $sub = $arr[0][0] ; value = 1
    
  • Массив внутри массива:

    Local $firstArray[2] = [1, 2]
    Local $arr[1] = [ $firstArray ]
    ;Local $sub = $arr[0][0] ; This does not work
    
    Local $sub = $arr[0]
    $sub = $sub[0] ; value = 1
    

В большинстве случаев в AutoIt вы предпочитаете многомерный массив.Массив внутри другого массива создает копию исходного массива, поэтому вы теряете некоторую производительность, и изменения в копии не влияют на оригинал.

Наконец, предпочтительнее использовать ключевое слово Local для определения переменных вместоГлобальное ключевое слово.Если вы объявляете переменные с ключевым словом Local, вы избегаете загрязнения глобального пространства имен.

...