等于和完全等于术语比较运算符之间的差异解释了差异,但一个重要的问题是:当我不将浮动与其他事物进行比较时,我应该使用哪一个?
"实用编程Erlang"建议=:=并且说你应该对==持怀疑态度,并且只在处理浮点数时使用它.但是它也说许多现有代码不遵循这个规则.
所以我有点困境.我是否应该使用"=="(即使不将浮点数与其他值进行比较)以保持与周围代码的一致性?我是否应该使用"=:=",即使这与文件的其余部分不一致?我应该将文件中的其他表达式转换为使用"=:="吗?
有什么权衡?运营商是否比其他运营商更有效?如果保证其中一个操作数不是数字,那么我使用哪一个操作数是否重要?是否没有隐藏的陷阱(例如,wrt.特殊浮点值,如NaN,Inf等...... - 以防Erlang支持这些).
顺便说一下,我面临的代码库是ejabberd.