代码之家  ›  专栏  ›  技术社区  ›  Gert Gottschalk

Tcl:布尔表达式的保证求值序列?

  •  0
  • Gert Gottschalk  · 技术社区  · 7 年前

    假设我有一个条件Tcl表达式,它是步骤的布尔组合。

    1. 表达式是否总是从左向右求值(不包括括号)?

    我有一段代码,可以解析文件并有条件地替换行中的内容。

    set fp [ open "file" ]
    set data [ read $fp ]
    close $fp
    foreach line [ split $data \n ] {
        if { $enable_patch && [ regsub {<some_pattern>} $line {<some_other_pattern>} line ]} {
            puts $outfp $line
            <do_some_more_stuff>
        }
    }
    

    enable_patch

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jim Lewis    7 年前

    || && 运营商是TCL的“短路”运营商。这意味着您可以依赖于从左到右对它们求值,并且一旦知道表达式的值,求值就会停止。