Frage

Ich kann leicht zwei Variablen, foo und bar verketten, wie in Tcl folgt: "$ {foo} $ {bar}"

Allerdings, wenn ich will nicht ein Zwischenergebnis in eine Variable setzen, wie kann ich verketten leicht die Ergebnisse etwas proc zu nennen?

Lange Hand würde dies geschrieben werden:

set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"

Gibt es eine Möglichkeit Ergebnis zu erzeugen, ohne die temporären Variablen foo und bar einzuführen?

das zu tun, ist falsch für meine Zwecke:

concat [myFoo $arg] [myBar $arg]

, da es einen Raum zwischen den beiden Ergebnissen führt (für Liste Zwecke), wenn man nicht existiert.

Scheint, wie ‚string concat‘ wäre, was ich will, aber es scheint nicht in meiner Version von Tcl-Interpreter zu sein.

string concat [myFoo $arg] [myBar $arg]

String concat ist über hier geschrieben:

War es hilfreich?

Lösung

Sie können ohne die Notwendigkeit einer temporären Variablen innerhalb eines Strings in doppelten Anführungszeichen Befehle einbetten:

set result "[myFoo $arg][myBar $arg]"

Andere Tipps

Wenn Sie dies viele Male tun, in einer Schleife, oder durch einen Zwischencode getrennt, Sie auch interessieren könnten:

set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]

schreiben Sie es einfach als ein Wort ohne zusätzliche Leerzeichen:

[myFoo $arg][myBar $arg]

Tcl sieht dies als ein einziges Wort nach der Substitution, unabhängig vom Ergebnis der beiden Unterbefehle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top