語法

有時你所擁有的是一個列表,但是你希望將列表中的專案傳遞給要求將每個專案作為單獨的引數。例如: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