2015-04-30 3 views
1

Я пишу сценарий AutoHotkey и теперь смущен тем, как сравнивать числа в AutoHotkey. 1>2, очевидно, неверно, но почему MsgBox alerts 1>2, а не false?Почему MsgBox 1> 2 alert 1> 2, а не false при использовании autohotkey?

Я думаю, что это логическое сравнение, почему msgbox не вычисляет результат?

Эта проблема не является такой же, как If Expressions Don't Work.

+0

Вы забыли принять какой-либо ответ. В качестве плаката по этому вопросу напоминаю, что вы чувствуете себя обязанностью. – Blauhirn

ответ

2
msgbox, % check(1 > 2) 


return 

check(now) 
{ 
if (now) 
return "true" 
else 
return "false" 
} 

Используя эту функцию, вы можете проверить результат выражения и вернуть его в msgbox!

взгляд на

% 

, что делает MsgBox показать результат выражения, а не строка его записать в виде (АХК недостаток, на мой взгляд)

4

Это, скорее всего, потому что ваш код выглядит это: MsgBox, (if(1>2))

Что читают AHK как: Create a message-box, and use the message '(if(1>2))'.

Если вы хотите на самом деле вычисления выражений и использовать результат в виде сообщения, правильный синтаксис таков: MsgBox, % 1>2

Это распечатать 0 в сообщении коробки, которая равна false, так как в АХК слова true и false - это просто встроенные переменные, содержащие 1 и 0.

Предлагаю вам прочитать эту статью на Variables and Expressions из документов. Они дают хорошее представление о том, как AHK обрабатывает переменные и выражения, поскольку это может быть немного ... особенным.

Смежные вопросы