2012-04-04 10 views
2

Nur einen einfachen, aber sehr oft Betrieb benötigt - wie eine Zeichenfolge an eine Variable vorangestellt wird:TCL String prepend

set s "world!!!" 
prepend s "Hello " #how to accomplish this effectively? 
puts $s 
#should print "Hello world!!!" 

Antwort

4

Sie eine Prozedur schreiben konnte prepend:

proc prepend {s_var txt} { 
    upvar 1 $s_var s 
    set s "${txt}${s}" 
} 

Das tut genau das, was Sie wollen. Aber ich denke, in der Regel ist es einfacher zu schreiben:

set s "Hello ${s}" 
+0

{set s „Hallo $ s“} ist dies der effektivste Weg in TCL? – Narek

+0

Schöne Antwort. Sie haben es in Ihrem Prozess, aber wahrscheinlich lohnt es sich, auch im zweiten Beispiel Curlies um die s zu wickeln. setze s "Hallo $ {s}" – TrojanName

+1

@Brian: Ich habe die geschweiften Klammern hinzugefügt, obwohl für * diese * es keinen Unterschied macht. – bmk

1

Es ist eine Weile her, seit ich TCL verwendet haben, aber haben Sie versucht, dies:

set s "world!" 
set s "hello $s" 
puts $s 
+0

Die gleiche Frage: {set s "Hallo $ s"} ist dies der effektivste Weg in TCL? – Narek

+0

Was meinst du mit effektiv? – alberge

+0

Ich meine den schnellsten Weg in TCL für diesen Vorgang. – Narek