web-dev-qa-db-ja.com

TCL:変数と文字列を連結します

変数「a」が12345に設定されていると仮定します。

set a 12345

ここで、「a」の値と別の文字列9876を含む新しい変数「b」をどのように設定しますか

回避策は次のようなものです

set a "12345"
set u "9876"

set b $a$u

しかし、$uを指定したくありません。代わりに、直接文字列を使用します。

18
user651006

できるよ:

set b ${a}9876

または、bが空の文字列に設定されているか、定義されていない場合:

append b $a 9876

appendの呼び出しは、$aは長い( append doc を参照)。

34
Trey Jackson

他のオプションは、setコマンドを使用することです。セットaはaの値を与えるので、以下のようにそれを使用してbの値を設定できます。

セットb [セットa] 9876

6
vaichidrewar

または、formatを使用できます

set b [format %s%s $a $u]

4
Harry Lee

Tcl 8.6から.2 以降、string catこの問題を解決するために使用できます。

set b [string cat $a 9876]
1
Donal Fellows

直接文字列の意味がわかりません...必要かどうかはわかりません...ただし、12349876の値が必要な場合は、次のようにできます。

% set b [concat $a$u]
12349876

$ aまたは$ uを文字列の一部にしたい場合は、目的の変数の前にバックスラッシュ '\'を追加するだけです。

0
aLt

他のオプションは、以下のようなconcatコマンドを使用することです。

セットb [連結$ a\9876]

0