我想在tcl中使用一個列表數組。這是我如何初始化它:是否可以在TCL中創建一個列表數組?
for {set i 0} {$i<5} {incr i} {
set defer_req$i {}
}
它的工作正常。但是當我在程序中使用這些列表時,它會給出一個錯誤「無法讀取defer_req,沒有這樣的變量」。請幫助我
我想在tcl中使用一個列表數組。這是我如何初始化它:是否可以在TCL中創建一個列表數組?
for {set i 0} {$i<5} {incr i} {
set defer_req$i {}
}
它的工作正常。但是當我在程序中使用這些列表時,它會給出一個錯誤「無法讀取defer_req,沒有這樣的變量」。請幫助我
您還沒有創建數組。您已經創建了一組具有「defer_req」前綴和數字後綴的變量。如Tcl手冊的variable syntax部分所述,數組尋址使用圓括號。所以,你的賦值語句應該是
set defer_req($i) {}
並在以後的代碼,使用這個,你可以使用這樣的:
puts $defer_req($memberName)
您不必使用數組 - 你可以留下你的代碼,因爲它站立,創建一組類似命名的變量。在這種情況下使用的值,你將需要:
puts [set defer_req$memberName]
它首先運行SET語句(括號內的部分)和$擴展到成員名稱後綴創建完整的變量名。然後只有一個參數的set command返回指定變量的值。
天真版本($ defer_req $ memberName)會嘗試替換名爲defer_req的變量的值,並將其值與名爲memberName的變量的值連接起來。
array set ar {}
set ar(key) {}
for {set i 0} {$i < 100} {incr i} {
lappend ar(key) $i
}
puts $ar(key)