1
我有以下問題:方括號在Tcl數組
set start "input[0]"
set end "output[0]"
set myArray($start,$end,pin) 1
set x "input[0]"
set y "output[0]"
set test [array names myArray $x,$y,pin]
puts "\n$test"
輸出應該是:
input[0],output[0]
但輸出:
{}
如果我這樣做:
set test [array names myArray *,*,pin]
puts "\n$test"
輸出爲:
input[0],output[0]
另外,如果我通過{}
ie.input{0},output{0}
原代碼的工作取代[]
。
有人可以告訴我這裏發生了什麼嗎?我如何逃避[]
括號?
這適用於上面提到的情況。 我有另一種情況下,我不能使用-exact: '設置測試[數組名myarray的$ X,$ Y *,長度]' 的-exact選項失敗,在這裏顯而易見的原因。我無法解決$ x和$ y中的方括號和* using -regexp問題。任何關於這裏發生的事情的想法? – user3119236
@ user3119236爲什麼你一直在使用'array names'?在我看來,你正在做一些錯誤的事情,而且你需要退後一步,想一想你想要做什麼。也許在數組元素中放置一個字典會更合適,或者可能將某些東西映射爲某種對象? –
Us字符串映射在所有方括號出現之前用斜線表示: set checkname [string map {\ [\\\ [\] \\\]}「$ x,$ y,*,length」] set test [array名稱myArray $ checkname] – mkostya