2009-09-15 7 views
21

Je peux facilement concaténer deux variables, foo et bar, comme suit dans Tcl: "$ {foo} $ {bar}".Comment concaténer les chaînes de manière concise dans Tcl?

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?

longue main ce serait écrit:

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

Est-il possible de créer résultat sans introduire les variables temporaires foo et bar?

Faire 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) si l'on n'existe pas.

On dirait que 'chaîne 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] 

cordes concat est écrit au sujet ici:

Répondre

29

Vous pouvez intégrer des commandes dans une chaîne double cité sans la nécessité d'une variable temporaire:

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

il suffit d'écrire comme un mot sans espaces supplémentaires:

[myFoo $arg][myBar $arg] 

Tcl y voit un seul mot après la substitution, quel que soit le résultat f les deux sous-commandes.

10

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

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