if-statement - 如何在 if 语句中使用 expr?

标签 if-statement tcl expr

我还没有设法理解如何将 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/

相关文章:

javascript - 使用数组填充 if 语句值

linux - 在 tcl 中复制和替换文件

linux - 如何从时间戳而不是当前时间中减去 10 分钟

javascript - 我怎样才能通过 if operator only 获得一个警报? (刚开始JavaScript学习)

java错误不是报表-电费单

Tcl 的 Java 图形用户界面

在 LLDB session 期间使用 expr 调用函数

linux - 下载基本 Linux 命令

r - 嵌套 ifelse : improved syntax

tcl - ttk::notebook 当前选定的选项卡