在 Tcl 中被识别为双精度的空字符串

empty string recognized as a double in Tcl

为什么 Tcl 8.5 将空字符串识别为双精度数?请参阅下面的简单代码:

puts [ string is double "" ]
>1

我认为 double 是一个定义明确的数字。
谢谢。

这是因为逐个字符验证的输入字段在为空时不应无效。

使用 -strict 选项禁止零长度双打。

有些人认为让命令默认只识别有效的双打会更好,而是使用标志让命令识别有效的双打空字符串。但是,为了保持兼容性,该行为将来不太可能改变。

文档:string