2011-03-09 60 views
14

假設我們有一個變量「a」設置爲12345:TCL:連接一個變量和一個字符串

set a 12345 

現在我該怎樣設定新的變量「B」包含「A」的價值和另一個字符串說9876

解決方法是一樣的東西

set a "12345" 
set u "9876" 

set b $a$u 

,但我不希望指定$u相反,我想直接串用..

回答

31

你可以這樣做:

set b ${a}9876 

,或者假設b要麼設置爲空字符串或沒有定義:

append b $a 9876 

append的調用是更有效時$a長(見append doc )。

+0

嘿Trey,很好的答案。在這些情況下使用雙引號會更好嗎,還是沒有可能性?例如。 'set b「$ {a} 9876」' – TrojanName 2011-03-09 10:14:27

+3

@Brian:Tcl並不關心,但如果它更加美觀的格式化,您可能會這麼做。 – 2011-03-09 10:19:48

+2

如果您嘗試使用空格來連接某些內容,您只需要進行某種分組,這取決於您是否還需要變量替換{}或「」 – 2011-03-09 10:35:46

6

其他選項是使用set命令。 因爲 設置 給出的,我們可以用它來設置B的值如下面

組b值爲[設置] 9876

0

其他選項是使用的concat命令等的下方。

集B [CONCAT $ A \ 9876]

0

我不明白你的意思,直接串......我不知道,如果你想... 但是,如果你想要的值的12349876,你可以這樣做:

% set b [concat $a$u] 
12349876 

如果你想要$ a或$ U是字符串的一部分,所需的變量之前只需添加一個反斜槓「\」。

0

從Tcl的8.6 0.2起,有string cat可用於解決這個問題。

set b [string cat $a 9876] 
2

或者,你可以使用format

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

-2

組的myString 「你好」

追加的myString 「世界!」

puts「$ myString」

Hello World!

相關問題