Bedeutung von Global, Local, Dim und Const

  • Global, Local und Dim deklarieren Variablen und erzeugen Arrays. In AutoIt ist es zwar wie in vielen Skriptsprachen nicht nötig Variablen explizit zu deklarieren, allerdings wird es von vielen Programmieren bevorzugt.

    Die Unterschiede zwischen den drei Möglichkeiten:
    Dim: Die Variable wird im lokalen* Gültigkeitsbereich deklariert, falls sie nicht schon im globalen** existiert. Im zweiten Fall wird die globale Variable wiederbenutzt.
    Local: Erzwingt, dass die Variable nur einen lokalen Gültigkeitsbereich besitzt.
    Global: Erzingt einen globalen Gültigkeitsbereich für die Variable.
    Const: deklariert Konstanten, d.h. wenn einmal ein Wert zugewiesen wurde, so kann dieser nicht mehr verändert werden. Man kann auch keine Variable in eine Konstante umwandeln. Konstanten müssen gleich bei der dekleration initialisier werden. Das bedeutet ihnen muss schon beim erzeugen ein Wert zugewiesen werden.
    Anm: Es sollten Global bzw. Local anstelle von Dim benutzt werden, um den erwünschten Gültigkeitsbereich sicherzustellen. AutoIt prüft zuerst den lokalen, dann den globalen Gültigkeitsbereich.

    Beispiele aus der Hilfe (z. T. abgewandelt)
    [autoit]

    ;Deklarieren von Variablen
    Dim $a, $b, $c
    Local $a, $b, $c
    Global $a, $b, $c
    ;Initialisieren
    Dim $a = 2, $b = 10, $c = 20
    Global $a = 2, $b = 10, $c = 20
    Local $a = 2, $b = 10, $c = 20
    $a = 2
    $b = 10
    $c = 20
    ;Deklarieren von Konstanten
    Const $a = 2, $b = 10, $c = 20
    Dim Const $d = 21, $e = Exp(1)
    Local Const $f = 5, $g = 7, $h = -2
    Global Const $i = 1924, $j = "...", $k = "xyz"
    ;Arrays deklarieren...
    Dim $Array1[4]
    Local $Array2[6]
    Global $Array3[34][10]
    ;... und initialisieren
    Dim $Array1[4] = [1, 2, 3, 15, 1.2]
    Local $Array2[10] = [12.32, 32, 12, "Hallo", StringSplit("Robert|Josef|Benedikt|Marta", "|"), "Käse"]
    Global $Array3[2][4] = [["Paul", "Jim", "Richard", "Louis"], [485.44, 160.68, 275.16, 320.00]]

    [/autoit]

    Das dürfte das wichtigste sein.


    *Innerhalb einer Funktion **im ganzen Skript

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    2 Mal editiert, zuletzt von Fast2 (4. August 2008 um 13:36)