![]() |
1
5
这不是交换值的好方法,即使对于基本类型也是如此。没有标准的“分配成语”;这完全是你编造的。
即使它有效,也没有理由期望它能产生比
我强烈建议您使用
|
![]() |
2
4
由于您一直在评论中询问理论:编译器优化的基础是编译器是否能够看到通用模式,从而根据优化度量将其转换为更好的代码。 为此,编译器可以 真的很聪明 在弄清楚以下是交换时:
在您提供的代码中,它应该是
几乎相等
仅适用于基本类型
,因为它将看到参数
这与标准表达方式相似
请注意,编译器是
真的很聪明
优化以传统/预期方式编写的代码。他们往往不喜欢和挣扎的是试图变得聪明。特别地,
为此,这不是 好的 交换值的方式 。很可能是这样 不 提供更好的优化(如果有的话,可能会稍微差一点)。
如果我们将这个定义扩展到包括泛型,情况会变得更糟,因为
同样,这也不是一个“成语” 从不 通过使用被确立为已经是一种模式。 |
![]() |
3
0
我认为,如果你同时分配多个值,其中一些受让人(不确定这是什么术语?)可能会在这个过程中发生变化,这是有道理的。 例如,进行旋转:
但是,如果仅交换2个值,则
虽然可读性是主观的,至少对我来说,
可优化性需要以基准为准才能确定,但据我所知,
|