在 Tcl 中被识别为双精度的空字符串
empty string recognized as a double in Tcl
为什么 Tcl 8.5 将空字符串识别为双精度数?请参阅下面的简单代码:
puts [ string is double "" ]
>1
我认为 double 是一个定义明确的数字。
谢谢。
这是因为逐个字符验证的输入字段在为空时不应无效。
使用 -strict
选项禁止零长度双打。
有些人认为让命令默认只识别有效的双打会更好,而是使用标志让命令识别有效的双打和空字符串。但是,为了保持兼容性,该行为将来不太可能改变。
文档:string
为什么 Tcl 8.5 将空字符串识别为双精度数?请参阅下面的简单代码:
puts [ string is double "" ]
>1
我认为 double 是一个定义明确的数字。
谢谢。
这是因为逐个字符验证的输入字段在为空时不应无效。
使用 -strict
选项禁止零长度双打。
有些人认为让命令默认只识别有效的双打会更好,而是使用标志让命令识别有效的双打和空字符串。但是,为了保持兼容性,该行为将来不太可能改变。
文档:string