AutoIt поддерживает следующие операторы присвоения, математические операторы, операторы сравнения и логические операторы.
Оператор | Описание |
---|---|
Операторы присвоения | |
= | Присвоение. Например $var = 5 (присваивает переменной $var число 5) |
+= | Добавляющее присвоение. Например $var += 1 (добавляет 1 к переменной $var) |
-= | Отнимающее присвоение. |
*= | Умножающее присвоение. |
/= | Делящее присвоение. |
&= | Объединяющее присвоение. Например $var = "один", а потом $var &= 10 ($var теперь равно "один10") |
Математические операторы | |
+ | Сложение. Например 10 + 20 (равно 30) |
- | Вычитание. Например 20 - 10 (равно 10) |
* | Умножение. Например 20 * 10 (равно 200) |
/ | Деление. Например 20 / 10 (равно 2) |
& | Объединение строк. Например "один" & 10 (равно "один10") |
^ | Возведение в степень. Например 2 ^ 4 (равно 16) |
Операторы сравнения (ниже указанные операторы, за исключением ==, не учитывают регистр при работе со строками, а при сравнении числа и строки, строка конвертируется в число по правилу функции Number) | |
= | Истинно, если значение слева равно значению справа. Например If $var = 5 Then (True, если $var равно 5). |
== | Истинно, если строки равны между собой. Учитывает регистр. Значения будут конвертированы в строки, если они не являются таковыми. Этот оператор используется только со строками, когда сравнение должно происходить с учётом регистра. |
<> | Истинно, если значения не равны между собой. Чтобы учитывать регистр If Not ($var1 == $var2) Then |
> | Истинно, если первое значение больше второго. Строки сравниваются в лексикографическом* порядке. |
>= | Истинно, если первое значение больше или равно второму. Строки сравниваются в лексикографическом* порядке. |
< | Истинно, если первое значение меньше второго. Строки сравниваются в лексикографическом* порядке. |
<= | Истинно, если первое значение меньше или равно второму. Строки сравниваются в лексикографическом* порядке. |
Логические операторы | |
And | Логическая операция И. Например If $var = 5 And $var2 > 6 Then (True, если $var равно 5 и $var2 больше, чем 6) |
Or | Логическая операция ИЛИ. Например If $var = 5 Or $var2 > 6 Then (True, если $var равно 5 или $var2 больше, чем 6) |
Not | Логическая операция НЕ. Например Not 1 (False) или например If Not ($var1 == $var2) Then (True, если $var1 и $var2 не равны с учётом регистра) |
Когда в выражении участвует больше одного оператора, порядок вычисления выражения определяется приоритетом операторов. Приоритеты, используемые в AutoIt даны ниже. Если два оператора имеют одинаковый приоритет - выражение вычисляется слева направо.
От высшего к низшему:
Not
^
* /
+ -
&
< > <= >= = <> ==
And Or
Например 2 + 4 * 10 равняется 42:
4 * 10 (равно 40)
2 + 40 (равно 42)
Поскольку * имеет приоритет выше, чем +, умножение выполняется раньше сложения.
Вы можете использовать скобки, если необходимо задать другие приоритеты.
Например (2 + 4) * 10 равно 60.
Примечания по использованию логических операторов And, Or:
Например If MyFunc1() Or MyFunc2() Then (MyFunc2() не будет вызвана, если MyFunc1() вернёт True)
Например If MyFunc1() And MyFunc2() Then (MyFunc2() не будет вызвана, если MyFunc1() вернёт False)
*лексикографический порядок означает, что сначала сравниваются первые символы каждой строки, затем вторые, и как только символы не равны возвращается True или False. В лексикографическом порядке большим значением обладает буква, у которой номер позиции в алфавите больше, то есть A < B, а учитывая цифры и другие символы порядок групп следующий: спец-символы < 0-9 < A-Z < А-Я, ещё пример А < АА < ААА < ААБ < ААВ < АБ < Б < … < ЯЯЯ, регистр букв не учитывается A=a.