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:

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top