Обзор языка - переменные

Обзор языка - переменные

Переменная - это просто место для хранения данных в памяти, откуда они могут быть быстро получены. Думайте об этом, как о почтовом ящике, куда можно положить данные или забрать их. К примеру, вы можете создать переменную, хранящую в себе ответ пользователя на вопрос или результат математического выражения.

Каждая переменная имеет имя (снова схожесть с почтовым ящиком), которое начинается с символа $ и может содержать символы латинского алфавита, цифры и знак нижнего подчёркивания "_". Вот несколько примеров:

    $Var1

    $vVariable

    $My_Variable


Учтите, что все переменные не зависят от регистра: $MyVariable совпадает с $MyvARiAblE

Тип любой переменной - variant.


Объявление переменных

Переменные объявляются и создаются с помощью ключевых слов Local и Global, а также с помощью Dim, хотя это не рекомендуется.

Local $var1

Можно объявить несколько переменных на одной строке:

Local $var1, $MyVariable


Можно также присвоить значение переменной без предварительного её объявления, но многие предпочитают предварительное объявление.

$var1 = "создать и присвоить значение"


Объявление констант

Константы объявляются и создаются с помощью ключевого слова Const и должны быть объявлены с присвоением значения

Const $const1 = 1, $const2 = 12

Константы могут быть объявлены и инициализированы (присвоено значение) с помощью ключевого слова Enum

Enum $const1 = 1, $const2, $const3    ; 1, 2, 3
Enum Step 2 $incr0, $incr2, $incr4    ; 0, 2, 4
Enum Step *2 $mult1, $mult2, $mult4   ; 1, 2, 4

После создания константы, её значение нельзя изменить. Уже существующую переменную нельзя объявить константой.


Область видимости переменных

Область видимости переменной определяется тем, где и как вы её объявляете. Если вы объявляете переменную в начале скрипта или за пределами любой функции, она создаётся, как глобальная (Global) переменная, и доступна из любого места скрипта.

Если вы объявляете переменную внутри функции, она создаётся, как локальная (Local) переменная, и доступна только в этой же самой функции. Переменные, созданные внутри функции, автоматически уничтожаются после окончания её работы.

По умолчанию, переменные, объявленные с помощью Dim или созданные с помощью обычного присвоения внутри функции, получают локальную (Local) область видимости, если не существует глобальной переменной с таким именем (в этом случае глобальная переменная используется повторно). Это поведение может быть изменено с помощью ключевых слов Local и Global, которые позволяют принудительно объявить переменную в нужной области видимости.

Массивы

Массив - это переменная, содержащая серию элементов данных одного типа. Доступ к каждому элементу такой переменной возможен по его индексу.

Пример:

Необходимо сохранить последовательность символов: "A", "U", "T", "O", "I", "T" и "3".
Для этого можно использовать 7 различных переменных... но использование массива для этого эффективнее:

$Array[0] = "A"
$Array[1] = "U"
; ..etc..
$Array[6] = "3"

Для доступа к отдельному элементу массива используется его номер:

$MyChar = $Array[2]

В результате $MyChar будет содержать символ "T" (См. также: операторы).


Индекс также можно задавать переменной или выражением, что позволяет строить сложные пути для доступа к элементам массива.


Массивы также могут быть многомерными, при использовании серии индексов. Представьте себе таблицу с колонками и строками, например:

$Array[0][0] = "Верхний левый"
$Array[1][0] = "Нижний левый"
$Array[0][1] = "Верхний правый"
$Array[1][1] = "Нижний правый"

(Значения здесь только для примера)

Максимальная размерность массива: 64 измерения. Общее число элементов массива не может превышать 2^24 (16 777 216).

Перед использованием массива необходимо объявить его, указав размеры и область видимости, используя одно из ключевых слов Global, Local, Static.

; Массив из 2 элементов, без присвоения значений
Local $aArray1[2]
; Массив из 7 элементов, только 3 элемента назначены
Local $aArray[7] = [3, 7.5, 'Строка']


Типы данных в массиве

Как правило массив содержит элементы только одного типа данных. Но поскольку переменная типа Variant в AutoIt может содержать любые данные (числа, строки, булевы значения), это позволяет содержать в массиве данные любого типа. Таким образом, массив в AutoIt может одновременно содержать в себе данные разного типа, и даже другие массивы:

$Array[0] = 1
$Array[1] = True
$Array[2] = "Текст"
$Array[3] = $AnotherArray

Использование массива, как элемента данных другого массива, может повлиять на скорость выполнения вашего скрипта.