21 Stimmen

TCL : Konkatenieren einer Variablen und einer Zeichenkette

Angenommen, die Variable "a" ist auf 12345 gesetzt:

set a 12345

Wie setze ich nun eine neue Variable 'b', die den Wert von 'a' und eine weitere Zeichenfolge, z.B. 9876, enthält?

Die Abhilfe sieht folgendermaßen aus

set a "12345"
set u "9876"

set b $a$u

aber ich möchte mich nicht festlegen $u Stattdessen möchte ich die direkte Zeichenfolge zu verwenden.

39voto

Trey Jackson Punkte 72000

Das können Sie tun:

set b ${a}9876

oder, unter der Annahme, dass b ist entweder auf die leere Zeichenkette gesetzt oder nicht definiert:

append b $a 9876

Die Aufforderung an append effizienter ist, wenn $a ist lang (siehe append doc ).

0 Stimmen

Hey Trey, gute Antwort. Ist es besser, in diesen Fällen doppelte Anführungszeichen zu verwenden, oder macht es keinen Unterschied? Z.B.. set b "${a}9876"

3 Stimmen

@Brian: Tcl kümmert sich nicht darum, aber Sie sollten das vielleicht tun, wenn es eine schönere Formatierung ergibt.

2 Stimmen

Eine Gruppierung ist nur dann erforderlich, wenn Sie etwas mit einem Leerzeichen zusammenfügen möchten, je nachdem, ob Sie auch eine Variablenersetzung benötigen {} oder "" wäre erforderlich

7voto

vaichidrewar Punkte 8761

Die andere Möglichkeit ist die Verwendung des Befehls set. seit set a den Wert von a angibt, können wir ihn verwenden, um den Wert von b wie folgt zu setzen

Satz b [Satz a]9876

4voto

Harry Lee Punkte 982

Sie können verwenden format

set b [format %s%s $a $u]

3voto

Donal Fellows Punkte 125686

Ab Tcl 8.6 .2 und weiter, gibt es string cat die zur Lösung dieses Problems verwendet werden können.

set b [string cat $a 9876]

1voto

Eine andere Möglichkeit ist die Verwendung des Befehls concat wie unten.

set b [concat $a \9876 ]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X