如何在if语句中使用expr?

德拉夫·克罗内格(Draif Kroneg)

我还没有了解如何将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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章