Tclで文字列を簡潔に連結する方法は?
-
07-07-2019 - |
質問
Tclで次のように、fooとbarの2つの変数を簡単に連結できます:" $ {foo} $ {bar}"。
ただし、中間結果を変数に入れたくない場合、procを呼び出した結果を簡単に連結するにはどうすればよいですか
長い手はこれを書くでしょう:
set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"
一時変数fooとbarを導入せずに結果を作成する方法はありますか?
これを行うことは、私の目的にとって間違っています:
concat [myFoo $arg] [myBar $arg]
2つの結果が存在しない場合、リストの目的で2つの結果の間にスペースが挿入されるため。
「string concat」は私が望むもののようですが、私のバージョンのTclインタープリターにはないようです。
string concat [myFoo $arg] [myBar $arg]
文字列の連結は、ここについて書かれています:
解決
一時変数を使用せずに、二重引用符で囲まれた文字列内にコマンドを埋め込むことができます。
set result "[myFoo $arg][myBar $arg]"
他のヒント
これを何回も、ループで、または中間コードで区切って行う場合は、次のことも考慮する必要があります。
set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
スペースを追加せずに単語として記述する:
[myFoo $arg][myBar $arg]
Tclは、2つのサブコマンドの結果に関係なく、置換後にこれを単一の単語と見なします。
所属していません StackOverflow