我是新来的tcl
,并且想了解return
语句在语言中的工作方式。以下面的代码为例:
proc add name {
set name [expr $name+2]
}
set y 5
puts [add $y]
我惊讶地发现这实际上将值打印7
到我的终端。return
因为我没有在我的程序中包含声明,所以我不希望打印任何内容。
当我确实包含一个 return 语句时,它似乎覆盖了这个奇怪的默认行为:
proc add name {
set name [expr $name+2]
return hello
}
set y 5
puts [add $y]
以上确实会返回你好。但它与7
?
为什么7
即使我没有 return 语句,程序仍然返回 a?为什么当我提供返回语句时它会覆盖此行为?