Static Global Array in einer Funktion erstellen

  • Huhu,

    warum geht das nicht?

    [autoit]

    #include <arrays.au3>

    [/autoit][autoit][/autoit][autoit]

    _test()

    [/autoit][autoit][/autoit][autoit]

    Func _test()
    Static Global $array[3]
    $array[0] = 1
    $array[1] = 2
    $array[2] = 3
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($array)

    [/autoit]

    Ich dachte, mit Static könnte ich INNERHALB einer Funktion eine Variable/ein Array definieren und global nutzen?

    Einmal editiert, zuletzt von Rhodan (16. September 2011 um 15:24)

  • Ja das scheint ein Bug zu sein. Fehler sollen für Static aber explizit nicht gemeldet werden (experimenteller Status).
    Die Frage ist hier nur warum machst du denn ein Global Static und nicht nur ein Global?
    Was erwartest du dir da für einen Vorteil?

  • Wahrscheinlich fehlt mir da jetzt einfach das Wissen (bin Anfänger).

    Also, ich hab in einer Funktion ein Array erstellt. Dieses möchte ich in adlib nutzen.
    Global in einer Funktion geht ja nicht.
    Und als ich gestern von Static erfuhr, dachte ich, das wäre die Lösung.

  • Global in einer Funktion geht ja nicht.

    Probier es doch einfach mal anstatt einfach davon auszugehen.
    Du brauchst in deinem Beispiel oben nur das Wörtchen "Static" raushauen und schon funktioniert das Beispiel (und das "s" aus #include <arrrays.au3>).
    Au3Check meldet zwar eine Warnung weil es die Deklaration an anderer Stelle erwartet aber das fertige Skript funktioniert trotzdem.

  • Es.....
    funktioniert... :S

    Ich hab dann wohl die ganze Zeit die Erläuterung in der Hilfe falsch interpretiert, bis es mir in Fleisch und Blut übergegangen ist.

    Oh Mann... :rofl:

    Danke