我还没有了解如何将expr嵌入其他结构中。我可以轻松输入
set i {1 2 3}
expr {[llength $i]} #result is 3
但是,经过长时间的研究,我还没有找到一种方法将其放入
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"
}
确实可以像使用任何命令一样,expr
使用[
方括号将表达式放入表达式中]
,但是通常没有理由这样做;它只会使一切变得更加冗长。
if {[ expr {[llength $i]} ] == 3} {
puts "length is 3"
}
当您拥有某种程度上具有动态性的表达式时,上述规则就会例外。这是因为expr
在表达式内部放一个表达式很有意义,因为它可以使外部部分高效地进行字节码编译。
# Trivial example to demonstrate
set myexpression {[llength $i]}
if {[expr $myexpression] == 3} {
puts "evaluated $myexpression to get three"
}
那是非常罕见的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句