Flash AS3教程:运算符“?:”
作者 凌众技术
来源 网页制作
浏览
发布时间 2012-03-10
前面给大家演示了一个Flash AS3教程:小游戏开发实战尝试,这篇说说运算符的使用。
首先个运算符,我们应不应该推崇多使用,先来做个测验: CODE: var sumo:int = 0; 从上面的测试结果不难看出,if else的确比?:快一点,那么是不是就应该抛弃?:呢?答案是错在计算10000000次的情况下,他们的效率差是那么的低。。才10毫秒。。 那么我们推荐用?:的时候: 1、没必要的情况下。 比如,判断逻辑值,如果为true,则a=20,如果为false,则a=30 代码:a = p ? 20 : 30; 如果写成if else,就是 if(p){ a = 20; }else{ a = 30; } 用if else勉强说得过去 那么是一个需要传参的地方,为true,为false,情况不一样,如果你在多出来5行,来写这段代码,个人认为,算是多余的了! 完全可以采用:fun(p ? 20 : 30); 如果说看不懂这样的代码,那么继续往下看,会教大家一种理解 ?: 的办法 2、逻辑比较复杂,但是都是属于单向判断的地方,咱就可以使用 ?: 了 比如我写的类中,有句这样的代码: num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2)); 有兴趣的朋友把他翻成if else,然后在对比一下这两个代码,你觉得那个看起来更累? 当然比较之前,还是继续看下面,让我来教大家如何快速理解 ?: 理解的办法: 先看一个简单的例子: a = num == 1 ? 2 : 3; 用通俗的语句说,就是:如果num等于1,则a=2,否则a=3,这个很好理解,那么上面那个类似火星文的代码 套用这种说法就比较难了,因此我们要改变思维想法,要直观的看着理解 a是准备接收得值的物体,跟后面的计算无关,那么我们可以直接理解后面 即:num == 1这个物体问2,所以为3,扩充一下语句就是:num == 1问2你等于我吗?2回答不,所以为3 在直观理解的时候,先判断num == 1是否为真值,为真?号后面的,为假:号后面的 不用把?:想象 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash AS3教程:运算符“?:”的所有评论