![]() |
Разница между операторами равенств ( =, ==, <> )
Столкнулся со следующей проблемой:
Код:
while 1 Изначально у меня условие вместо Код:
if Not ($messagesListElementStateText == $messagesListElementStateTextTemp) Then Код:
if $messagesListElementStateText <> $messagesListElementStateTextTemp then Резюмирую: в случае, когда messagesListElementStateTextTemp = 0, а messagesListElementStateText = 'Привет' сравнение через not ( == ) дало True, а через <> - False. Как так? |
Зачем так усложнять?
Чтобы ответить на поставленный вопрос, желательно увидеть полный пример. Хотя думаю дело в сравнений разных типов данных. |
Freez,
<> не учитывает регистр букв, как и = == - учитывает регистр букв |
Цитата:
«==» это не тоже самое что и «=», второе применение сравнивает типы данных как строки, а первое по отдельности, пример: Код:
$vVar1 = 0 Цитата:
|
Creat0R, просто сравниваеть результаты инвертирования выражения, которые имеют разные свойства уже не логично, это я и показал.
Freez, посмотри примеры логических выражений. |
Цитата:
И ты показал про регистр букв, тут нет связи с регистром, здесь вопрос именно в сравнений типов данных. Это обсуждалось немало на оф. форуме. |
Creat0R, с типами данных - это понятно. Вопрос в следующем:
Код:
If '' = 'Привет' Then Код:
If 0 = 'Привет' Then Код:
If '' = 0 Then Сначала я было подумал, что через " = " любая строка равна любому числу, однако (false): Код:
If '' = 1 Then Какой в этом смысл? |
Цитата:
Цитата:
В данном случае (второй пример сверху) оба типа данных преобразовываются в целое число, почему - потому что так устроен AutoIt, он работает только с одним типом данных - Variant. В первом же примере, оба типа являются строковыми, поэтому и нет совпадения. Цитата:
|
Creat0R, ага, спасибо, теперь совсем понятно ))
|
Время: 06:52. |
Время: 06:52.
© OSzone.net 2001-