![]() |
1
2
好吧,首先,你的 方法2 除以零所以这甚至不是一个有效的解决方案。 不过,我想你想要一个“一般”的答案当然,这类问题伴随着大量的“取决于”资格它取决于CPU的类型、编程语言、编译器可能进行的优化、运行时优化等。 然而,一般而言,相关业务的成本顺序大致如下:
基本上,这是因为(分别):
所以,我可能会打赌 方法1 上面为了清楚起见,我将在第一个例子中用等价的三元运算符编写if语句:
这对于映射一个简单的布尔值(索引为0或不是0)是很好的但是当映射变得更复杂时呢在将一个值映射到另一个值时,有两个结构通常会提供良好的性能:查找表或哈希映射。 如果键是整数,在一些最小值和最大值之间有限制,那么查找表是有用的。如果密钥是散列的(通常可以使用int、string或Objects作为散列密钥),那么散列映射是很好的看看 haxe.ds.IntMap , haxe.ds.StringMap 和 haxe.ds.ObjectMap .)
例1:
一个常用的查找表可以将数字整数“星期几”映射到用于该天的单词假设
所以现在
例2:
一个
sample
StringMap可用于按字符串值存储某些对象(例如
这在缓存昂贵的操作时非常常见。 Imagine caching an HTTP response 通过它的网址会是的 许多的 从StringMap第二次查找要比再次返回获取响应便宜。 ---更新--- 我还注意到你说的“内联if/else赋值”,指的是:
注意,实际上编写if内联是 绝对不行 性能差异它的性能与:
这些也完全一样:
这些类型的语义差异对代码的最终执行没有任何影响处理器仍然需要计算并临时存储调用该函数的值,不管是内联编写的,还是存储在
|
![]() |
2
0
二进制运算如何
|
![]() |
George Kurelic · 正常游戏中的FlxReplay 7 年前 |
![]() |
0x.dummyVar · 如何在Haxe中乘法字符串 7 年前 |
![]() |
Sim · 加载模板时出错,请运行“flixel下载”。? 7 年前 |
![]() |
rener172846 · 如何在Haxe中克隆动态对象? 7 年前 |
![]() |
Gulvan · 圆形遮罩的作用类似于矩形 7 年前 |
|
YvesScherdin · Haxe:本机接口属性可实现? 7 年前 |
![]() |
Gulvan · Xml。nodeValue导致“坏节点类型”错误 7 年前 |
![]() |
naviator · Haxe-SWC中的可变参数数 7 年前 |