Question

Je peux facilement concaténer deux variables, foo et bar, comme suit dans Tcl: "$ {foo} $ {bar}".

Cependant, si je ne veux pas mettre un résultat intermédiaire dans une variable, comment puis-je facilement concaténer les résultats de l'appel d'un proc?

Main longue cela s’écrirait:

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

Y a-t-il un moyen de créer un résultat sans introduire les variables temporaires foo et bar?

Cela est incorrect pour mes besoins:

concat [myFoo $arg] [myBar $arg]

car il introduit un espace entre les deux résultats (à des fins de liste) s'il n'en existe pas.

On dirait que "string concat" serait ce que je veux, mais cela ne semble pas être dans ma version de l'interpréteur Tcl.

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

La concatitation de chaînes est décrite ici:

Était-ce utile?

La solution

Vous pouvez incorporer des commandes dans une chaîne entre guillemets doubles sans recourir à une variable temporaire:

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

Autres conseils

Si vous faites cela plusieurs fois, dans une boucle ou séparés par un code intermédiaire, vous pouvez également envisager:

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

écrivez-le simplement comme un mot sans espaces supplémentaires:

[myFoo $arg][myBar $arg]

Tcl considère cela comme un seul mot après la substitution, quel que soit le résultat des deux sous-commandes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top