我有一些奇怪的TCL行为,我不了解使用大括号和变量范围。在下面的两行代码中,我创建了一个变量quickMode并将其设置为0.然后我尝试在三元组中使用该变量并应用大括号来停止双重转换。我收到一个错误,指出无法读取quickMode并且不是变量。如果我删除花括号,我清除错误。任何人都可以解释这种行为吗?
set quickMode 0
set frameSizeIncrement [ mpexpr {$quickMode == 1 ? 600 : 3}]
can't read "quickMode": no such variable
while executing
"expr {$quickMode == 1 ? 600 : 3}"
("eval" body line 1)
invoked from within
"eval expr $args"
(procedure "mpexpr" line 1)
invoked from within
"mpexpr {$quickMode == 1 ? 600 : 3}"
invoked from within
"set frameSizeIncrement [ mpexpr {$quickMode == 1 ? 600 : 3}]"
(file "tests/basics/ingress_egress.tcl" line 101)