In AutoIt gibt es nur einen Datentyp, namens Variant. Ein Variant kann numerische oder Zeichendaten enthalten und entscheidet über deren Nutzung, abhängig von der Situation, in der diese Daten genutzt werden. Zum Beispiel, wenn versucht wird zwei Variants zu multiplizieren, werden sie als Zahlen behandelt, wenn versucht wird zwei Variants zu verketten (verbinden), werden sie als Zeichenketten behandelt.
Einige Beispiele:
10 * 20 entspricht der Zahl 200 (* wird genutzt um zwei Zahlen zu multiplizieren)
10 * "20" entspricht der Zahl 200
"10" * "20" entspricht der Zahl 200
10 & 20 entspricht der Zeichenkette "1020" (& wird genutzt um Zeichenketten zu verbinden)
Wenn eine Zeichenkette als Zahl benutzt wird, wird ein impliziter Aufruf von Number() vollzogen. Sollte die Zeichenkette nun keine gültige Zahl enthalten, wird angenommen, dass der Wert 0 entspricht. Zum Beispiel,
10 * "fgh" entspricht der Zahl 0.
Wenn eine Zeichenkette als Wahrheitswert (boolean) benutzt wird und es ist eine leere Zeichenkette "" , wird angenommen, dass der Wert "nicht wahr" (false) entspricht (siehe unten). Zum Beispiel,
NOT "" entspricht dem Wahrheitswert true.
Zahlen können standardmäßige Zahlen sein, wie 2, 4.566, und -7.
Wissenschaftliche Schreibweise wird ebenso unterstützt; deshalb kann 1.5e3 anstatt 1500 geschrieben werden.
Integer (ganze Zahlen) können gleichwohl in hexadezimaler Schreibweise repräsentiert werden, dem Integer voranstellend 0x wie in 0x409 oder 0x4fff (wenn Hex-Notation genutzt wird sind nur 32-bit Zahlen gültig).
Zeichenketten sind in doppelten Anführungszeichen eingeschlossen, wie "diese". Wenn eine Zeichenkette doppelte Anführungszeichen enthalten soll schreibt man es zweifach wie:
"Hier ist ein ""doppeltes Anführungszeichen"" - OK ?"
Einfache Anführungszeichen können ebenso genutzt werden wie 'diese' und 'Hier ist ein ' 'einfaches Anführungszeichen' ' - OK ?'
Anführungszeichen können für einfacheren Umgang gemischt werden, z. Bsp. um Verdoppelung zu vermeiden, damit das gewünschte Ergebnis erreicht wird. Zum Beispiel, wenn mehrere doppelte Anführungszeichen in einer Zeichenkette enthalten sind, dann sollte man einfache Anführungszeichen für die Deklaration nutzen:
'Dieser "Satz" enthält "viele" "doppelte Anführungszeichen", nicht wahr?'
ist wesentlich einfacher als:
"Dieser ""Satz"" enthält ""viele"" "doppelte Anführungszeichen", nicht wahr?"
Bei Auswertung von Zeichenketten, können diese Env oder Var Variablen repräsentieren, gemäß der Opt() Funktionsdefinition.
Wahrheitswerte (Booleans) sind logische Werte. Es existieren nur zwei Zustände: wahr(true) und
nicht wahr(false).
Sie können in Zuweisungen von Variablen genutzt werden, zusammen mit den Boolean Operatoren and,
or und not.
Beispiel:
$Boolean1 = True
$Boolean2 = False
$Boolean3 = $Boolean1 AND $Boolean2
Das Ergebnis in $Boolean3 ist demnach false
$Boolean1 = false
$Boolean2 = not $boolean1
Das Ergebnis in $Boolean2 ist demnach true
Falls ein Boolean zusammen mit Zahlen verwendet werden, gelten folgende Regeln:
Ein Wert 0 entspricht dem Boolean von false
Jede andere Zahl entspricht dem Boolean von true
Beispiel:
$Zahl1 = 0
$Boolean1 = true
$Boolean2 = $Zahl1 und $Boolean1
Das Ergebnis in $Boolean2 ist demnach false
Wenn arithmetische zusammen mit Wahrheitswerten genutzt werden (was nicht ratsam ist!),
gelten folgende Regeln:
Ein Boolean true wird konvertiert, in den numerischen Wert 1
Ein Boolean false wird konvertiert, in den numerischen Wert 0
Beispiel:
$Boolean1 = true
$Zahl1 = 100
$Zahl2 = $Boolean1 + $Zahl1
Das Ergebnis in $Zahl2 ist der numerischen Wert 101
Wenn Zeichenketten zusammen mit Wahrheitswerten genutzt werden, werden diese wie folgt
konvertiert:
Ein Boolean true enthält die Zeichen "True"
Ein Boolean false enthält die Zeichen "False"
Beispiel:
$Boolean1=true
$String1="Test ist: "
$String2=$String1 & $Boolean1
Das Ergebnis in $String2 ist die Zeichenkette "Test ist: True"
Umgekehrt ist es anders. Wenn Zeichenketten mit
Wahrheitswerten verglichen werden, gelten folgende Regeln:
Nur eine leere Zeichenkette ("") ist ein Boolean false
Jede andere Zeichenkette mit Werten (einschließlich einer Zeichenkette wie "0") ist ein
Boolean true
Binärdaten können jegliche Bitwerte aufnehmen. Sie werden in ihre
hexadezimale Repräsentation konvertiert, wenn sie in einer Zeichenkette gespeichert werden.
Beispiel:
$bin = Binary ("abc")
$str = String ($bin)
; "0x616263"
Zeigertypen enthalten eine 32bittige oder 64bittige Speicheradresse, je nach dem davon abhängig, ob die 32bit oder 64bit Version von AutoIt genutzt wird. Sie werden in ihre hexadezimale Repräsentation konvertiert, wenn sie in einer Zeichenkette gespeichert werden. Fensterhandles (HWnd) wie von WinGetHandle zurückgegeben, sind Zeigertypen.
Die folgende Tabelle zeigt die internen Variant Datentypen und deren Einstufung.
| Sub-Datentyp | Einstufung und Bemerkungen |
| Int32 | Ein 32bit vorzeichenbehafteter Integer (Ganzzahl). |
| Int64 | Ein 64bit vorzeichenbehafteter Integer (Ganzzahl) |
| Double | Eine doppelt-präzise Fließkomma Zahl (double). |
| Zeichenkette | Kann bis zu 2147483647 Zeichen aufnehmen. |
| Binärdaten | Binärdaten können bis zu 2147483647 Bytes aufnehmen. |
| Zeiger | Ein Zeiger auf eine Speicheradresse. 32 Bit oder 64 Bit abhängig von der genutzten AutoIt Version. |
Manche Funktionen in AutoIt arbeiten ausschließlich mit 32bittigen Zahlen (z. B. BitAND) und konvertieren diese automatisch - Diese Funktionen sind dokumentiert, wenn erforderlich.