語法
有時你所擁有的是一個列表,但是你希望將列表中的專案傳遞給要求將每個專案作為單獨的引數。例如:winfo children
命令返回一個視窗列表,但 destroy
命令只接受一系列視窗名稱引數。
set alpha [winfo children .]
# => .a .b .c
destroy $alpha
# (no response, no windows are destroyed)
解決方案是使用 {*}
語法:
destroy {*}[winfo children .]
要麼
destroy {*}$alpha
{*}
語法的作用是獲取以下值(中間沒有空格!)並將該值中的項拼接到命令列中,就好像它們是單獨的引數一樣。
如果以下值是空列表,則不會拼接任何內容:
puts [list a b {*}{} c d]
# => a b c d
如果有一個或多個專案,則插入它們:
puts [list a b {*}{1 2 3} c d]
# => a b 1 2 3 c d