Ich habe gerade einen Bug bei dem Datentyp MAP entdeckt:
Wenn ein Key in der MAP nicht vorhanden ist, dann würde ich als Rückgabe einen Leerstring oder eine Null erwarten.
Tatsächlich ist es aber so, dass das Keyword NULL zurückgegeben wird und somit ein Vergleich auf einen Leerstring oder 0 nicht funktioniert. "Not" hingegen funktioniert.
Hier mal ein Testscript:
AutoIt
Global $mMap[]
$mMap['a'] = 'abcdef'
ConsoleWrite('Ausgabe von "a": ' & $mMap['a'] & @CRLF)
Global $sTest = $mMap['b'] ; den Key 'b' gibt es nicht
If $sTest = '' Then ConsoleWrite('1. If-Bedingung erfuellt.' &@CRLF)
If $sTest = 0 Then ConsoleWrite('2. If-Bedingung erfuellt.' &@CRLF)
If $sTest = Null Then ConsoleWrite('3. If-Bedingung erfuellt.' &@CRLF)
If Not $sTest Then ConsoleWrite('4. If-Bedingung erfuellt.' &@CRLF)
Nur die 3. und 4. Bedingung wird erfüllt.