2009-09-15 17 views
21

Tcl: "$ {foo} $ {bar}" ile aşağıdaki gibi iki değişken, foo ve çubuğu kolayca birleştirebilirim. Ancak, bir ara sonucu bir değişkene koymak istemezsem, bazı proc çağrılarının sonuçlarını nasıl kolayca birleştirebilirim? Tcl dizeleri nasıl birbirine eklenir?

Uzun eli bu yazılı olacaktır:

set foo [myFoo $arg] 
set bar [myBar $arg] 
set result "${foo}${bar}" 

geçici değişkenler foo ve bar tanıtan olmadan sonuç oluşturmak için bir yol var mı? Bunu yapmak

benim amaçlar için yanlış:

concat [myFoo $arg] [myBar $arg] 

biri yoksa o (liste amaçlı) iki sonuç arasındaki bir boşluk tanıtır olarak.

'String concat' istediğim gibi olurdu, ancak Tcl yorumlayıcımın sürümünde görünmüyor.

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

Dize concat burada yaklaşık yazılır:

[myFoo $arg][myBar $arg] 

Tcl olarak görüyor:

cevap

29

Geçici bir değişken için gerek kalmadan bir çift tırnaklar içinde komutları yerleştirebilirsiniz:

set result "[myFoo $arg][myBar $arg]" 
4

sadece fazladan boşluk bırakmadan bir kelime olarak yazmaya sonuçtan bağımsız olarak, ikame sonrası tek bir kelime f iki alt komut.

10

Eğer bir döngü içinde, bu birçok kez yapıyorsanız veya bazı ara koduna göre, sen olabilir ayrıldı ayrıca aşağıdakileri dikkate alınız:

set result "" 
append result [myFoo $arg] 
append result [myBar $arg] 
append result [myBaz $arg]