考虑一下你有一些像这样的表达
i = j = 0
假设这是在您选择的语言中明确定义的。通常将其分成两个表达式会更好吗
i = 0
j = 0
我有时会在库代码中看到这一点。就简洁性而言,它似乎并没有给您带来太多好处,并且不应该比这两个语句执行得更好(尽管这可能取决于编译器)。那么,有理由使用其中一种而不是另一种吗?或者这只是个人喜好?我知道这听起来像是一个愚蠢的问题,但它已经困扰我很长时间了:-)。
曾几何时,存在性能差异,这也是使用这种分配的原因之一。编译器会转i = 0; j = 0;
into:
load 0
store [i]
load 0
store [j]
所以你可以使用保存指令i = j = 0
因为编译器会将其转换为:
load 0
store [j]
store [i]
如今编译器可以自己进行这种类型的优化。此外,由于当前的 CPU 同时运行多个指令,性能不再能够简单地用指令数量来衡量。一个操作不依赖于另一个操作的结果的指令可以并行运行,因此为每个变量使用单独值的版本实际上可能会更快。
关于编程风格,您应该使用最能表达代码意图的方式。
例如,当您只想清除某些变量时,您可以链接分配,并在值具有特定含义时将其单独分配。特别是如果将一个变量设置为某个值的含义与将另一个变量设置为相同值的含义不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)