【发布时间】:2018-09-08 12:54:58
【问题描述】:
我想将一个列表传递给一个过程,但不知道怎么做。我已经看过一些如何做到这一点的例子,但是这些例子太复杂了,我不明白。列表和程序如下所示。
set RS_CheckBoxes [list kl15_cb din1_cb din2_cb din3_cb din4_cb \
dinnc_cb ain1_cb ain2_cb ain3_cb ain4_cb a_cb \
b_cb u_cb v_cb w_cb sin_cb cos_cb th1_cb th2_cb hvil_cb]
tk::button .rs.enter -height 2 -text "Enter" -width 10 -command {x $RS_CheckBoxes}
proc x {$RS_CheckBoxes} {
if {$RS_CheckBoxes} {
puts "ON"
} else {
puts "OFF"
}
}
目前我正在使用下面的代码,但想减少行数。
tk::button .relSel.b -height 2 -text "Enter" -width 10 -command {if {$kl15_cb} {
puts "$kl15_cb"
} else {
puts "$kl15_cb"
}
if {$dinnc_cb} {
puts "$dinnc_cb"
} else {
puts "$dinnc_cb"
}
if {$din1_cb} {
puts "$din1_cb"
} else {
puts "$din1_cb"
}
if {......... etc}
............. etc
【问题讨论】:
-
你必须解释你想要做什么。在第二个示例中,您正在测试一个值,然后将其打印出来,无论它是真还是假。在第一个示例中,您使用字符串
$RS_CheckBoxes作为参数名称,这不太可能有用。第一步,将参数列表更改为{RS_CheckBoxes},但也请让您的意图更加清晰。