Braucht es das?

  • Machmal, denkt man :) ,hervorgerufen durch das durh das eine oder andere Ereignis überDinge nach, von denen man glaubt man beherrsche sie - und sieht sie plötzlich aus einem anderen Winkel und fragt sich dann ...was soll das....

    Beispiel simple Variable. Autoit lässt uns die Wahl zwischen Global/local/dim. Wenn man sich das ansieht z.B. Autoit leicht gemacht oderAutoIt v.3 Nachschlagewerk zur Hilfe zieht - fragt man sich wozu local eigentlich nutze ist und warum man nicht gleich alles Global declariert?

    Wie macht Ihr das bzw. was denkt Ihr dazu?

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Moin,

    in AutoIt sind Variablen, die außerhalb von Funktionen deklariert werden, automatisch immer 'global', selbst wenn die mit Local oder Dim daklariert werden.

    Die Variablendeklaration mit Local macht nur innerhalb von Funktionen wirklich Sinn. Damit wird sichergestellt, dass in der Funktion nicht ungewollt Variablen genutzt bzw. verändert werden, die außerhalb der Funktion im 'globalen' Raum deklariert wurden. Anderenfalls würde, wenn es eine gleichnamige globale Variable gibt, immer die genutzt.

    In größeren Skripten muss man so nicht immer wieder checken, ob die innerhalb der Funktioen genutzen Variablen auch global existieren. Und wenn man eine UDF schreibt, ist das unverzichtbar, weil man nicht wissen kann, in welche Umgebung sie inkludiert wird.

  • Velted

    okay das mit den UDfs macht Sinn für local

    Obwohl ich mich immer um "sprechende" Variablen bemühe setze ich wohl immer zuviele ein - so dass ich ab und an tatsächlich den einfachen Überblick verliere...

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • okay das mit den UDfs macht Sinn für local

    Nicht nur da!

    In Funktionen sollten (möglichst) keine globalen Variablen verwendet werden. Lieber die Variablen als Parameter übergeben und das Ergebnis mit Return zurückgeben.

    Das lässt sich zwar nicht immer realisieren, aber grundsätzlich versuche ich mich daran zu halten.

    Bei rekursiven Funktionen sind lokale Variablen sowieso wichtig.

    Statische (lokale) Variablen sind oftmals auch sehr hilfreich.

  • wenn du viele Funktionen hast die die selbe variable verwenden sollen aber du diese nicht in jeder Funktion extra setzten möchtest bzw. Return weil manchmal benötigt man das ja auch für True oder False , dann kannst du auch immer deine Methoden aufbauen mit byref

    dadurch wird die gewünschte eingesetzte Variable mit der Methode verarbeitet und im ganzen Skript geändert.

    hier mal ein kleines beispiel :

  • Danke für das Beispiel,

    ich gebe zu - da muss ich erst darübernachdenken......

    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)