gpt4 book ai didi

performance - == 和 = := should I use? 中的哪一个

转载 作者:行者123 更新时间:2023-12-04 02:50:26 25 4
gpt4 key购买 nike

Difference between equal to and exactly equal to term comparison operators解释了差异,但一个重要的问题也是:当我不将浮点数与其他东西进行比较时,我应该使用哪个?

“Pragmatic Programming Erlang”推荐 =:= 并说你应该怀疑 == 并且只在处理浮点数时使用它。但是它也说很多现有的代码不遵循这个规则。

所以我有点进退两难。我是否应该使用“==”(即使 而不是 将浮点数与其他值进行比较)以与周围代码保持一致?我是否应该适本地使用“=:=”,即使这与文件的其余部分不一致?我应该将文件中的其他表达式转换为使用“=:=”吗?

有哪些权衡?任何一个运算符(operator)都比另一个更有效率吗?如果保证其中一个操作数不是数字,我使用哪一个有关系吗?是否没有隐藏的陷阱(例如,特殊浮点值,如 NaN、Inf 等。如果 Erlang 支持这些)。

顺便说一句,我面临的代码库是 ejabberd。

最佳答案

如果不需要比较整数和浮点数,请使用 =:=。性能是相同的(或者至少差异太小而无法衡量)并且 NaN、inf 等在 Erlang 中不存在。

很多 OTP 库代码使用 == 的原因可能是因为 =:= 是 Erlang 的一个相当新的补充。

关于performance - == 和 = := should I use? 中的哪一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10681770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com