Использование переменных в настройке переменных

Я хочу перечислить переменную так:

$x = 0
Do
  $x+=1
  $Day$x = True
Until $x = 7

Приведенное выше возвращает синтаксическую ошибку в $Day$x (потому что в команде предполагается видеть только одну переменную). В общем, я хочу $Day1 = True, $Day2 = True и так далее, и так далее. Есть ли способ сделать это?


person Anthony Miller    schedule 08.02.2012    source источник
comment
Обычный способ оболочки сделать это будет ${Day$x}, но я понятия не имею, работает ли это с autoit.   -  person Chris Dodd    schedule 09.02.2012
comment
Связано.   -  person user4157124    schedule 09.11.2017


Ответы (1)


Добро пожаловать в удивительный мир массивов.

#include <Array.au3> ; for debugging

Global $Day[7]
$x = 0
Do
    $Day[$x] = True
    $x+=1
Until $x = 7

_ArrayDisplay($Day) ; For debugging

На самом деле вы можете делать то, что вы изначально описали, с помощью $Day1, $Day2, $Day3, но это будет очень плохая практика программирования, и лично я настоятельно не одобряю ее. При этом это возможно с помощью функции «Назначить». Вы бы использовали его по совершенно неправильной причине. Но для полноты, вот как:

$x = 0
Do
    Assign("Day" & $x, True)
    $x+=1
Until $x = 7

MsgBox(0, "", $Day2)
person Jos van Egmond    schedule 09.02.2012