1

Тема: AHK: Почему не срабатывает сравнение?

Вот так условие срабатывает, выполняется код в скобках:


sssss := 100
FileVolume := sssss
If sssss <> FileVolume
{
	............
}

А если написать так, то условие не срабатывает:

If "" . sssss <> FileVolume

Что за фигня?? Почему переменные получаются разных типов? В скрипте они больше нигде не используются и не определяются.
Я считаю что в первом варианте условие не должно сработать. В чем ошибка?

2 (изменено: creature.ws, 2012-11-08 08:15:43)

Re: AHK: Почему не срабатывает сравнение?

Почему переменные получаются разных типов?

Переменные не типизированы, хранятся в виде строк.

Суть проблемы не в некой «типизации», а в незнании вами «особенности» синтаксиса ahk:
В autohotkey версии < 2 оператор if расценивает sssss <> FileVolume как сравнение содержимого переменной с именем sssss со строкой FileVolume

Правильно писать так:

sssss := 100
FileVolume := sssss
If (sssss <> FileVolume) ; сравнение содержимого двух переменных
    MsgBox 100 <> 100

В AHK v2 условие оператора if расценивается целиком как выражение, даже при отсутствии скобок.
В v1.1 используйте скобки, не ошибётесь.

3

Re: AHK: Почему не срабатывает сравнение?

Спасибо, работает!