我还没有设法理解如何将 expr 嵌入到其他结构中。 我可以轻松打字
set i {1 2 3}
expr {[llength $i]} #result is 3
然而,经过长时间的研究,我还没有找到一种方法将它放入 if
if {"magic tcl code with expr and llength==3 required here"} {
puts "length is 3"
}
最佳答案
if
的第一个参数是一个表达式,就像 expr
的参数是一个表达式一样。
if {[llength $i] == 3} {
puts "length is 3"
}
您确实可以使用 [
brackets]
将 expr
放入表达式中,就像任何命令一样,但通常没有理由这样做所以;它只会让一切变得更加冗长。
if {[ expr {[llength $i]} ] == 3} {
puts "length is 3"
}
当你有一个动态的表达式时,上述规则就会出现异常(exception)情况;这就是将 expr
放入表达式中的意义所在,因为它允许外部部分高效地进行字节码编译。
# Trivial example to demonstrate
set myexpression {[llength $i]}
if {[expr $myexpression] == 3} {
puts "evaluated $myexpression to get three"
}
这非常罕见。
关于if-statement - 如何在 if 语句中使用 expr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41379852/