Einfügen von Kommentaren in die Zugvorlage
#message [Text]
Dieser Befehl gibt das Ergebnis der Auswertung des Ausdrucks Text als Kommentar in die Zugvorlage aus. Soll hierbei ein komplexerer Text erzeugt werden, der auch Zahlen enthält, so ist die Typisierung und die Priorität der Operatoren zu beachten.
Wird der Parameter weggelassen, so wird einfach eine Leerzeile ohne Semikolon erzeugt.
Einfache Textausgabe:
#message 'Hello World!'
erzeugt in der Zugvorlage (incl. des Semikolons):
; Hello World!
Text in Kombination mit Zahlen:
#message 'Wir haben '+unit.anzahl+' Leute.'
erzeugt (wenn die Einheit 13 Personen hat):
; Wir haben 13 Leute.
Soll hingegen eine Zahl vorne stehen, muß man anders vorgehen:
#message ''+unit.anzahl+' Leute haben wir.'
Das ''+ ist nötig, weil Typen immer so gewandelt werden, das der rechte Operand zum Typ des linken konvertiert und dann die Operation im Typ des linken Operanden ausgeführt werden. Ohne
den Leerstring wäre die Addition nach der Anzahl eine Addition von einem String auf eine Zahl, und das ist nicht definiert. Durch den Leerstring zu Beginn wird zunächst die Zahl zu dem Leerstring addiert und somit in einen String gewandelt und angefügt, und danach der String hinter der Anzahl zu dem bisherigen Ergebnis (das ja ein String ist) hinzu addiert, was ebenfalls erlaubt ist.
Das gleiche Problem ergibt sich bei einer Berechnung:
#message 'Wir haben Holz und Steine mit '+(unit.holz*5+unit.stein*60)+' GE.'
Hier sind die Klammern nötig, weil die Addition in der Mitte sonst ja erst nach der Addition links ausgeführt würde. Das Ergebnis wäre dann das sowohl das umgewandelte Ergebnis von 'unit.holz*5' als auch das von 'unit.stein*60' einzeln zu dem String hinzugefügt würden, satt die Zahlen erst zu addieren und dann dem String hinzuzufügen.
Metabefehls-Ausdrücke Revision 23 Jan 2004
|