2011-03-09 57 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!

相关问题