gpt4 book ai didi

tcl - 为什么 tcl 的 "if"不返回值?

转载 作者:行者123 更新时间:2023-12-04 19:38:44 28 4
gpt4 key购买 nike

为什么这不像我想的那样工作?

set x [if {1} {return 2} {return 3}]

命令输出显示 2 ,但是当您检查 x 的值时,发现是undefined..!

我已经阅读了一个解决方法,...
proc give {x} {return $x}
set x [if {1} {give 2} {give 3}]

...但我不明白为什么第一个不起作用。

来自 the tcl 8.5 documentation for if :

"The return value from the command is the result of the body script that was executed, or an empty string if none of the expressions was non-zero and there was no bodyN."



问题:
  • 为什么不set x [if {1} {return 2} {return 3}]x 设置一个值?
  • 鉴于 set x [if {1} {return 2} {return 3}]不行,怎么办 tclsh在交互式 shell 上显示“2”?
  • 鉴于 tclsh在交互式shell上显示“2”,这是怎么回事set x仍未定义?
  • 最佳答案

    expr命令返回一个值,所以

    set x [if 1 {expr 2} {expr 3}]

    但是如果你这样做,你不妨使用三元运算符
    set x [expr {1 ? 2 : 3}]

    关于tcl - 为什么 tcl 的 "if"不返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17777824/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com