get_au3 - Tutorial Seite

  • Hi Community,

    vor ca. 2 Wochen habe ich angefangen Autoit Tutorials zu schreiben. Ich gebe mein Bestes diese einfach zu halten und verständlich zu schreiben. Desweiteren gibt es für jede Schwierigkeit der Tutorials eine eigene Kategorie. Somit können Neulinge hoffentlich den Stoff besser einschätzen.

    Da ich bereits von ein paar Leuten dazu Rückmeldung bekommen habe und meinten ich sollte die Seite auch hier im Forum im OT einmal vorstellen, tute ich dies hiermit.

    Wer die Signaturen ausgeschaltet hat, sieht den Link in meiner Signatur nicht. Somit poste ich den Link hier nochmal:
    [Blockierte Grafik: http://johannes-log.de/side/wp-content/uploads/logo_get_au3_av.png]

    Feedback höre ich gerne ;)

    Einmal editiert, zuletzt von Jautois (25. Februar 2011 um 02:13)

  • Wenn du außerhalb von Funktionen Variablen deklarierst kannst du local schreiben wie du willst die Variable wird immer global werden.
    Es ist dort völlig egal was du als Bezeichner schreibst.
    Aber verständlicher ist dann global auch hinzuschreiben da man dann gleich sieht wie die Variable gedacht ist.
    Nur innerhalb von Funktionen unterscheiden sie sich in ihrer Wirkung.

    Dim sollte aber hingegen vermieden werden da der Geltungsbereich dabei danach ausgewählt wird ob schon eine globale Variable existiert oder nicht.
    Es ist also in Funktionen nicht vorhersehbar ob mit Dim deklarierte Variablen in einer Funktion lokal werden oder auf eine globale Variable mit diesem Namen verweist.
    Daher: außerhalb von Funktionen grundsätzlich mit global deklarieren (zur Übersicht) und innerhalb local verwenden wenn sie die Funktion nicht verlassen soll oder global wenn sie doch außerhalb verwendet werden soll, aber Dim vermeiden.
    Ich kenne bisher auch nur einen einzigen Anwendungsfall wo Dim notwendig wird.

  • Die Erklärung zu Dim ist nicht ganz richtig. Es erstellt die Variable im aktuellen Kontext (in einer Funktion lokal, sonst global) falls sie noch nicht exsitiert, andernfalls ist die Anweisung sozusagen wirkungslos.

    • Dim ohne Wertzuweisung (Dim $variable)

      • Es existiert bereits eine globale Variable mit dem selben Namen -> nichts passiert (egal ob Dim global oder in Funktion)
      • Dim in einer Funktion, es existiert eine lokale Variable mit dem selben Namen -> nichts passiert
      • Sonderfall Dim mit Arrayklammern: verhält sich immer wie mit Wertzweisung
    • Dim mit Wertzuweisung (Dim $variable = ...):

      • Es existiert bereits eine globale Variable mit dem selben Namen -> die gloable Variable wird verändert (egal ob Dim global oder in Funktion)
      • Dim in einer Funktion, es existiert eine lokale Variable mit dem selben Namen -> lokale Variable wird verändert
  • AspirinJunkie: Nicht deine Erklärung ist falsch, sondern die von Jautois auf get_au3. Da war mein Beitrag mal wieder zu knapp

    Zitat

    Wird Dim vor der Variablendeklaration verwendet, so gilt die Variable ‘lokal’. Das heißt, wurde die Variable innerhalb einer Funktion deklariert, dann ist sie nur innerhalb dieser Funktion verfügbar.

  • Ah danke - hab grad ne viertelstunde deinen Beitrag 10x durchgelesen und versucht rauszufinden wo ich da was anderes geschrieben hab. :rolleyes:
    Sollte weniger ich-bezogen denken... :whistling:

    @Jautois
    Schöne Zusammenstellung.
    Werde ich sicher mal verlinken wenn man einen Einstieg sucht.
    Vielleicht könntest du ja bei Schleifen unter 4. noch die For-In-Schleife dazu nehmen.
    Die ist bei 0-basierten Arrays ja übersichtlicher und einfacher zu handhaben als eine For-To mit Ubound()-1

    Einmal editiert, zuletzt von AspirinJunkie (25. Februar 2011 um 14:55)

  • Danke für Eure Rückmeldungen!

    Ich habe mal die Sache mit dem Dim verbessert, hoffe auch richtig ;)

    Danke AspirinJunkie, dass du mich an die vierte Schleifenvariante erinnert hast.