7.6 WMLScript数据类型自动转换规则 - 编程吧

上一篇 | 下一篇

7.6 WMLScript数据类型自动转换规则

发布: 2007-7-20 13:51 | 作者: 佚名 | 来源: 转载 | 查看: 15次


7.6  数据类型自动转换规则
前文述及,WMLScript在进行某些运算时需要对数据进行类型转换。比如进行逻辑运算时,就需要把其他类型的数据自动转换为布尔型数据,然后才能进行逻辑运算。转换时,WMLScript能够根据当前操作符的特性要求,自动匹配所需的数据类型并自动进行转换。本节我们就详细讨论与此相关的转换规则。

7.6.1  一般转换规则
在默认状态下,WMLScript的操作符可以对符合数据类型要求的操作数进行直接操作,如果操作数的类型不符合要求,则尝试着对操作数的类型进行转换。然而,并不是所有的数据类型都可以互相转换,有些特殊类型是无法转换的,此时WMLScript就会给出无效值或错误信息作为处理结果。

WMLScript进行数据类型转换的一般规则如下:

(1) 转换为字符串型。除无效型即invalid之外,其他3种类型的数据都可以转换为字符串型的数据:

其一,整数型数据转换时将按照十进制数的规则,把整数作为字符串。例如,整数567转换时,将变为字符串"567"。

其二,浮点数型数据转换时将直接把数据转换为字符串形式,且保持它所代表的值不变。比如,3.14转换为字符串时为"3.14",该字符串所代表的值仍为3.14或.314e1等。

其三,布尔型的值true转换时将变成字符串"true",布尔型值false将转换成字符串"false"。

(2) 转换为整数型。除了无效型即invalid以及浮点数不能转换为整数型数据外,其他两种数据类型都有可能转换为整数:

其一,如果字符串所包含的字符全部都是数字,则该字符串可以转换为整数。如果前几位为0,则转换时一并忽略。例如,字符串"2345"转换时会变为整数2345,字符串"0023045"转换时会转换为整数23045。

其二,布尔型的值true转换时将变成整数值1,布尔型值false转换时将变为整数值0。

(3) 转换为浮点数型。除了无效型即invalid不能转换为浮点型数据外,其他3种数据类型都有可能转换为浮点型数:

其一,如果字符串中包含有一个合法的浮点型数,那么该字符串就可以转换为浮点型数。例如,例如,字符串"2345.789"转换时会变为浮点数2345.789,字符串"0023.045"转换时会转换为浮点数23.045;而字符串"23W45.789"不含有合法的浮点数,所以它不能转换。

其二,整数可以转换为相等的浮点数。例如,整数234转换时就变为浮点数234.0。

其三,布尔型的值true转换时将变成浮点型数值1.0,布尔型值false转换时将变为浮点型数值0.0。

(4) 转换为布尔型。除了无效型即invalid不能转换为布尔型数据外,其他3种数据类型都有可能转换为布尔型数:

其一,空字符串("")可以转换为布尔型值false,其他所有字符串均转换为布尔型值true。

其二,整数值0可以转换为布尔型值false,其他所有整数均转换为布尔型值true。

其三,浮点型数值0.0可以转换为布尔型值false,其他所有浮点型数均转换为布尔型值true。

(5) 转换为无效型。凡不符合上述转换规则的数据类型,其数据在转换时都转换为无效型,即得到invalid的值。另外,如果操作符的操作数就是或含有invalid,那么操作的结果一般都是invalid。

字号: | 推荐给好友

 

评分:0

我来说两句

seccode