作为程序员,你用过三元运算没?所谓的三元运算其实是每个支持三元运算的编程语言里面的“语法糖”,所谓“语法糖”就是编程语言赋予了程序员一种相对简洁的语法方式来完成本来应该需要写很长代码才能完成的工作。
(资料图片)
而三元运算其实就是由一个问号加一个冒号组成的,表现为“比较运算?true:false”。
也就是,当“比较运算”结果为true的时候,三元运算返回问号后面的值,反之为false的时候,三元运算返回冒号后面的值。当然了,问号和冒号后面均可以嵌套其他多层三元运算逻辑,甚至是带有返回值的函数!
有人说三元运算的效率没有直接写If语句高,一直以来我也没有去验证过这个说法。而我写代码写了将近十年了,可能是我没遇到过,也许是编程语言的原因(我是C#程序员)我是觉得三元运算和if语句的效率其实是不相伯仲的。
为了验证我这个猜想,我写了一个Demo,模拟三元运算和if语句同时执行相同判断时,给出结果的时间到底是怎么样的。
模拟的方式就是造一百万条整型数据,然后判断数据大于五十万的是否超过一百条。
也许是我模拟的方式有问题,Demo告诉我的结果是三元运算和if语句的效率都不是太稳定(也许是我用来模拟的电脑环境的原因),有时候三元运算快,有时候if语句快,但是大多数情况下是三元运算快!
于是,我觉得可能是单次对比说明不了问题,于是我将三元运算和if语句分别执行了一千次,看看他们在执行一千次时所耗费的时间是多少。
结果表明,三元运算和if语句的效率同样是不稳定的,但是同样的结果,大多数情况下还是三元运算快!
因此,我可能会比较草率地得出一个结论,那就是三元运算至少在简单判断的情况下、数据量小的情况下,效率大多数情况下是优于if语句的!
而简单判断大多数情况下已经满足我们的开发需求了,因此,在代码中,其实我们可以大胆地去用三元运算!
您也许能站在更高角度看待这个问题,如果您觉得我的理解有问题,也欢迎您指正我的观点!
关键词:
Copyright 2015-2022 纵横食品网 版权所有 备案号:浙ICP备2022016517号-12 联系邮箱:51 46 76 11 3 @qq.com