Come concatenare in modo conciso le stringhe in Tcl?
-
07-07-2019 - |
Domanda
Posso concatenare facilmente due variabili, foo e bar, come segue in Tcl: " $ {foo} $ {bar} " ;.
Tuttavia, se non voglio inserire un risultato intermedio in una variabile, come posso concatenare facilmente i risultati della chiamata a proc?
A lungo questo sarebbe scritto:
set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"
Esiste un modo per creare risultati senza introdurre le variabili temporanee foo e bar?
Questa operazione non è corretta per i miei scopi:
concat [myFoo $arg] [myBar $arg]
in quanto introduce uno spazio tra i due risultati (ai fini dell'elenco) se uno non esiste.
Sembra che 'string concat' sarebbe quello che voglio, ma non sembra essere nella mia versione dell'interprete Tcl.
string concat [myFoo $arg] [myBar $arg]
String concat è scritto qui:
Soluzione
Puoi incorporare i comandi in una stringa tra virgolette doppie senza la necessità di una variabile temporanea:
set result "[myFoo $arg][myBar $arg]"
Altri suggerimenti
Se lo fai molte volte, in un ciclo o separato da un codice intermedio, potresti anche considerare:
set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
scrivilo semplicemente come una parola senza spazi extra:
[myFoo $arg][myBar $arg]
Tcl vede questa parola come una singola parola dopo la sostituzione, indipendentemente dal risultato dei due sottocomandi.