22

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]

1つが存在しない場合、2つの結果の間にスペースが導入されるため(リストの目的で)。

'string concat'は私が望むもののようですが、私のバージョンのTclインタープリターにはないようです。

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

文字列concatはここに書かれています:

4

3 に答える 3

29

一時変数を必要とせずに、二重引用符で囲まれた文字列内にコマンドを埋め込むことができます。

set result "[myFoo $arg][myBar $arg]"
于 2009-09-15T23:14:56.117 に答える
11

これを何度も、ループで、またはいくつかの中間コードで区切って実行している場合は、次のことも検討してください。

set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
于 2009-09-16T13:56:01.770 に答える
4

余分なスペースを入れずに単語として書くだけです。

[myFoo $arg][myBar $arg]

Tclは、2つのサブコマンドの結果に関係なく、これを置換後の1つの単語と見なします。

于 2009-09-15T23:14:42.077 に答える