我想要将一个函数中获取的可变参数传递给另一个函数,但我无法做到。该函数获取偶数个可变参数,然后必须将其转换为数组。以下是示例。
过程
下面是所得到的错误:
过程
abc1
获取两个参数(k k
),而不是从abc1
过程中传递这些参数到proc abc
,需要进行列表到数组的转换。列表到数组的转换在proc1即abc1
中有效,但在第二个proc即abc
中无效。下面是所得到的错误:
proc abc {args} {
puts "$args"
array set arg $args
}
proc abc1 {args} {
puts "$args"
array set arg $args
set l2 [array get arg]
abc $l2
}
abc1 k k
abc k k
输出:
k k
{k k}
list must have an even number of elements
while executing
"array set arg $l1"
(procedure "abc" line 8)
invoked from within
"abc $l2"
(procedure "abc1" line 5)
invoked from within
"abc1 k k"
(file "vfunction.tcl" line 18)