ByRef direkt ohne Leerzeichen hinter dem Komma in einer Function - nicht erlaubt?

  • Func _GetOnlineDriverInfo($sName,$sApi,$sPsVer,$sPsUrl,ByRef $sOnline,ByRef $sUrl)
    ergibt Fehlermeldung:
    "I:\Entwicklung\WebdriverUpdater_v2.09b.au3"(893,71) : error: missing separator character before keyword.
    Func _GetOnlineDriverInfo($sName,$sApi,$sPsVer,$sPsUrl,ByRef $sOnline,ByRef
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    Die Fehlermeldung verschwindet, wenn ich vor den beiden ByRef jeweils ein Leerzeichen einfüge.
    Im Forum gesucht und vermutlich mangels ausreichendem Suchbegriff nichts gefunden.

    Ist das ein Fehler in meiner AutoIt-Installation? Normalerweise kann man doch immer nach einem Komma sofort weiterschreiben!?

    :)

  • Aus meiner Sicht ist das durchaus ein Bug. Jedoch nicht von AutoIt sondern vom Tool Au3Check, welches oftmals vor AutoIt selbst aufgerufen wird.

    Kann man ganz gut daran erkennen wenn man es deaktiviert indem man am Anfang des Skriptes folgende Zeile setzt: #AutoIt3Wrapper_Run_AU3Check=N - dann läuft das Skript problemlos.

    Ich selbst bin kein Fan von dem meiner Meinung nach ziemlich verbuggten Tool. Das Ding erkennt viel zu viele False-Positives.

  • Hi zusammen ✌️,

    richtig, bin auch der Meinung es ist ein Bug im Au3Check Tool. Bin also bei AspirinJunkie .
    Melden kannst du diesen direkt bei @Jos im englischen Forum. Er ist "regelmäßig" dran am Tool und verbessert es weiter.

    Anderer Meinung bzgl. Au3Check im allgemeinen bin ich aber schon:
    Hier und da ist es buggy unter Umständen, doch dies trifft deutlich seltener auf als die positive Auswirkung des Tools.
    Die ganzen Checks sind hilfreich, u. a. gerade für Einsteiger die sie leider oft nicht nutzen (weil nicht ausreichend bekannt) und somit nicht selten relativ offensichtliche Verhaltensfehler im Code erzeugen. Klar, dass Meiste ist kosmetischer Natur (Syntax), was da gecheckt wird, doch aus falschen Scopes und falschen programming habits/bad code kann bei mittleren oder größeren Projekten auch schnell mal semantische Fehler entstehen, die man frühzeitig hätte vermeiden können.


    Für anderen Sprachen kennt man "linter" und "formatter" die solche Dinge abdecken. Die sind i.d.R. zwar nicht so buggy und im Funktionsumfang etwas mächtiger und ausgereifter, doch an sich gut das es so etwas auch für AutoIt gibt 👌 .

    Viele Grüße
    Sven