conditional-expressions

___ qstnhdr ___ Sind bedingte Ausdrücke in Paketen gebrochen? ___ answer8305840 ___

Ich habe das gleiche Problem in der Vergangenheit selbst mit Delphi 2007 gefunden. Als Workaround verwende ich eine inc-Datei mit den bedingten Definitionen und verwende dann %code% anstelle von %code%

so etwas

%Vor%     
___ qstntxt ___

Betrachten Sie das folgende Snippet:

%Vor%

Es scheint absolut syntaktisch korrekt zu sein. Der Compiler drosselt ihn jedoch und meldet %code% . Was passiert hier wirklich?

Technisch: derzeit nur auf XE (15.0.3953.35171) getestet.

Natürlich sind auch Workaround-Vorschläge willkommen.

    
___ tag123delphi ___ Delphi ist eine Sprache für die schnelle Entwicklung von nativen Windows-, macOS-, Linux-, iOS- und Android-Anwendungen mithilfe von Object Pascal. Der Name bezieht sich sowohl auf die Delphi-Sprache als auch auf deren Bibliotheken, Compiler und IDE, mit denen Delphi-Projekte bearbeitet und debuggt werden können. ___ tag123compilerconstruction ___ Das Tag compiler-construction sollte auf Fragen zur Programmierung von Compilern oder zu Fragen zum detaillierten Innenleben von Compilern angewendet werden. NUTZEN SIE NICHT für Fragen zum * Verwenden * spezifischer Compiler oder Kompilierungsfehler. ___ tag123conditionalcompilation ___ Kompilierung bestimmter Teile des Quellcodes wird eingeschlossen / ausgeschlossen. Dies kann oft durch Vorverarbeitung des Quellcodes erreicht werden. Das Einschließen / Ausschließen von Teilen der Quelle kann durch Pre-Prozessor-Schlüsselwörter gesteuert werden. ___ tag123delphixe ___ Delphi XE ist eine spezielle Version von Delphi. Delphi XE wurde im August 2010 veröffentlicht und ist als eigenständiges Produkt oder als Teil von RAD Studio XE verfügbar. ___ tag123conditional_expressions ___ Der Bedingungsoperator ist ein ternärer Operator, der Teil der Syntax für einen bedingten Basisausdruck in mehreren Programmiersprachen ist. In der Regel wird es auch als ternärer Operator oder inline bezeichnet. Verschiedene Sprachen haben unterschiedliche Syntax für dasselbe Konstrukt, aber alle wählen basierend auf einer Bedingung zwischen zwei Optionen aus. ___ answer8306148 ___

Ich bin überzeugt, was ich gerade gefunden habe. Berücksichtigen Sie Folgendes:

%Vor%

Es scheint also, dass der Compiler sich korrekt verhält, gibt aber eine ziemlich irreführende (wenn nicht falsche) Nachricht über das Symbol aus, das kein konstanter Ausdruck ist, während das fragliche Symbol tatsächlich undeclared ist!

    
___ answer8308537 ___

%code% Module unterscheiden sich von %code% und %code% Module. Sie enthalten keinen ausführbaren Code und Sie können nicht %code% units. Daher sind Symbole wie %code% einfach nicht aus einer Paketdatei sichtbar. Ihre einzige Option ist die Verwendung von %code% .

    
___
1
Antwort

Unerwartete Ausgabe mit dem ternären Operator von Python in Kombination mit Lambda

Ich habe eine spezifische Situation, in der ich folgendes tun möchte (eigentlich ist es mehr als das, aber ich habe das Problem auf das Wesentliche reduziert): %Vor% was eine schwierige Art zu schreiben ist: %Vor% aber in Wirklichkeit si...
05.12.2015, 02:56
3
Antworten

Sind bedingte Ausdrücke in Paketen gebrochen?

Betrachten Sie das folgende Snippet: %Vor% Es scheint absolut syntaktisch korrekt zu sein. Der Compiler drosselt ihn jedoch und meldet Constant expression expected . Was passiert hier wirklich? Technisch: derzeit nur auf XE (15.0.3953.3...
29.11.2011, 03:58