flex类型强转as
来源:互联网 发布:鞍山北国知春房价 编辑:程序博客网 时间:2024/05/19 19:32
每一种编程语言都提供强制类型转换,允许你将某一种数据类型转换成另一种数据类型,AS3自然也不例外。但是虽然我编写了不少Flex程序,对AS3中的强制类型转换还是不太清楚,以前AS中是这样进行强制类型转换的:假设有一个类叫做Class1,我们声明了一个它的对象 c1,如果想要将它转换成Class2类型,只要这样写:
Class2(c1);
在AS3中你依然可以这样写,但是AS3 中提供了一个新的操作符: as ,并且推荐使用as 进行强制转换,上述的例子用 as 操作符实现就是这样:
c1 as Class2;
使用 as 操作符有几个好处:
1.它的效果和第一种方法是一样的。
2.如果类型不兼容无法转换,就会返回null,而不是出错。这样你就可以自定义错误的时候该做什么。
3.没有运行时错误(Run Time Error)提示。
不过有些时候我在使用 as 的时候并不能达到强制转换的目的,而使用第一种方法则可以。为什么 as 操作符有时候会不好用呢?这个问题困扰了我很久,知道昨天在MXNA上发现了一篇日志,才恍然大悟:原来在AS3.0类库中最高层类(Top Level classes,所有Top Level classes的列表请看这里)之间进行强制转换时, as 操作符是不起作用的。比如,假如你想要将一个String 类型的字符串 str 转换成 Number 类型的数字 num 时,可能想要这样写:
num = str as Number;
这样写是没有用的,你只能通过第一种方法来达到强制转换的目的:
num = Number(str);
Flex中的as关键字
之前一直把“as”关键字用作强制类型转换,发现有时可以有时不行,今天看了书才恍然大悟:
利用“is”和“as”关键字可以对接口的实现进行检查。两者的区别在于,当检查成功,对象确实是接口的实现,代码中如果使用is关键字将返回布尔值true,而使用as关键字的表达式将返回该对象本身。如果失败,则is关键字返回布尔值false,而as会返回null。
Class2(c1);
在AS3中你依然可以这样写,但是AS3 中提供了一个新的操作符: as ,并且推荐使用as 进行强制转换,上述的例子用 as 操作符实现就是这样:
c1 as Class2;
使用 as 操作符有几个好处:
1.它的效果和第一种方法是一样的。
2.如果类型不兼容无法转换,就会返回null,而不是出错。这样你就可以自定义错误的时候该做什么。
3.没有运行时错误(Run Time Error)提示。
不过有些时候我在使用 as 的时候并不能达到强制转换的目的,而使用第一种方法则可以。为什么 as 操作符有时候会不好用呢?这个问题困扰了我很久,知道昨天在MXNA上发现了一篇日志,才恍然大悟:原来在AS3.0类库中最高层类(Top Level classes,所有Top Level classes的列表请看这里)之间进行强制转换时, as 操作符是不起作用的。比如,假如你想要将一个String 类型的字符串 str 转换成 Number 类型的数字 num 时,可能想要这样写:
num = str as Number;
这样写是没有用的,你只能通过第一种方法来达到强制转换的目的:
num = Number(str);
Flex中的as关键字
之前一直把“as”关键字用作强制类型转换,发现有时可以有时不行,今天看了书才恍然大悟:
利用“is”和“as”关键字可以对接口的实现进行检查。两者的区别在于,当检查成功,对象确实是接口的实现,代码中如果使用is关键字将返回布尔值true,而使用as关键字的表达式将返回该对象本身。如果失败,则is关键字返回布尔值false,而as会返回null。
无论是is还是as,都只能检查对象实例是否实现某接口(Interface),即对象是否同某接口(Interface)兼容。不能将类名称(Class)用在is/as之后,这样做的结果是始终返回false或null
0 0
- flex类型强转as
- 关于Swift as类型强转的细节说明
- flex中as强制类型转换
- flex中as强制类型转换
- ActionScript 3 中的强制类型转换 (as 强转失败原因)
- C++类型强转
- null类型强转
- C#类型强转
- scala 类型强转
- 类型强转和地址强转
- C# float类型强转
- LUA中的类型强转
- LUA中的类型强转
- python基础 强转类型
- C++之类型强转
- 强类型
- java Long类型转换为flex AS Number类型时出现数值错误
- 写几个带继承关系的类,使用直接强转的方式,以及使用as转换, 并且练习is的类型判断
- ubuntu16.10安装Rstudio时依赖包的解决
- 关于Gradle的一些小技巧
- linux printk解释
- 20170324全志R16的tinav2.1系统的bt传输文件不通,蓝牙音频通!
- tf.train.Saver
- flex类型强转as
- 算法-动态规划(1)
- 3.Java语句的执行结构,分支语句,循环语句,特殊流程控制语句
- 英语总结系列(二十七):重复就是力量
- php邮件发送的两种方式 smtp
- python requests 图片保存以及--踩的坑
- 数据库事务的四大特性以及事务的隔离级别
- kuangbin带你飞专题1(搜索)A-棋盘问题
- 数据结构-线性表