在tcl中是否需要stdout?
我是tcl的新手,我希望精通这门语言,所以我想我应该问一下,为什么有些示例代码中有stdout,而有些代码只使用put,这是有原因的。这本书似乎没有解释这一点。IDE是否已更新为自动采用标准输出?如果您没有为标准输出提供通道名称,则在tcl中是否需要stdout?,tcl,stdout,Tcl,Stdout,我是tcl的新手,我希望精通这门语言,所以我想我应该问一下,为什么有些示例代码中有stdout,而有些代码只使用put,这是有原因的。这本书似乎没有解释这一点。IDE是否已更新为自动采用标准输出?如果您没有为标准输出提供通道名称,则将把命令写入标准输出(并且从…开始一直如此)。如果你愿意,你可以把它放进去或放出去;这没关系,但如果这样或那样做,事情可能会变得更清楚。让它成为你的选择。put的唯一必需参数是要写入的字符串 在性能方面,省略值稍微快一点,但您应该忽略这一点,因为与执行IO的成本相比,
将把命令写入标准输出(并且从…开始一直如此)。如果你愿意,你可以把它放进去或放出去;这没关系,但如果这样或那样做,事情可能会变得更清楚。让它成为你的选择。put
的唯一必需参数是要写入的字符串
在性能方面,省略值稍微快一点,但您应该忽略这一点,因为与执行IO的成本相比,查找的额外成本绝对微不足道。表达清晰是选择一个而不是另一个的唯一有效理由
不过,在某种情况下,这很重要。如果您希望编写默认情况下写入标准输出的代码,但可以重写它以写入文件(或套接字、管道或…),那么将通道名称存储在变量中就容易多了(当然,默认情况下设置为stdout
)。这样,您所有的代码都是相同的,只有一点不同:正常关闭stdout不是一个好主意。这样的代码很容易避免:
# Also don't want to close stdin or stderr...
if {![string match std* $channel]} {
close $channel
}
Tl'dr:没关系。我想知道你所说的“IDE”是什么意思:Tcl是一种编程语言和支持它的运行时;它不包括任何IDE。