字符串是entier tcl8.5

string is entier tcl8.5

我有以下问题:

我想检查一个字符串是否是 64 位整数。 我不能使用 [string is integer $str] 方法,因为它只适用于 32 位整数。

http://wiki.tcl.tk/10166 我找到了 [string is entier $str] 的解决方案,但这在 tcl8.5 中不起作用我收到以下错误消息:

bad class "entier": must be alnum, alpha, ascii, control, boolean, digit, double, false, graph, integer, list, lower, print, punct, space, true, upper, wideinteger, wordchar, or xdigit

tcl8.5不支持这种方式吗? 我可以检查 64 位整数吗?

Tcl 8.5 中,string is 不支持 entier class(检查一般整数——这个名字来自法语,被选中是因为一切else better is taken for something already)。然而, wideinteger class 支持的,并且在所有支持的平台上都对 64 位整数进行精确检查;普通旧 string is integer 可能真的是 32 位或 64 位,具体取决于 CPU 体系结构。

不要忘记使用 -strict 除非您希望空字符串被接受为有效值。 (在某些情况下这是可取的,但通常不是。这是多年前的一个小规范问题。)