From Bohemia Interactive Community
Notes
- Posted on Apr 15, 2014 - 16:24
- ffur2007slx2_5
-
(ArmA3 1.16) for multiple comparisons, we can use the example below for more accurate compare than BIS_fnc_arrayCompare or BIS_fnc_areEqual:
fnc_areEqual = {
private ["_b","_var1","_var2"];
_b = true;
for [{_i = 1},{_i < (count _this) && _b},{_i = _i + 1}] do {
_var1 = _this select (_i-1);
_var2 = _this select _i;
if (!(_var1 isEqualTo _var2)) then {_b = false;};
};
_b
};
["A","a","a"] call fnc_areEqual; // false
["A","a","a"] call BIS_fnc_areEqual; // true
Bottom Section
- Posted on July 19, 2014 - 19:48 (UTC)
- AgentRevolution
-
The behavior of "var1 isEqualTo var2" is pretty much equivalent to "var1 in [var2]", plus the ability to compare arrays, and slightly better performance.
- Posted on December 2, 2014 - 06:18 (UTC)
- DreadedEntity
-
To clarify AgentRevolution's note, he is saying that the in command and isEqualTo use the same comparison algorithm. If we were able to look at the code for the in command, I bet you would find isEqualTo in there also.
- Posted on December 3, 2014 - 13:11 (UTC)
- Tajin
-
Simply put, "isEqualTo" is a binary comparison. Therefor it is very fast but only accepts 100% identical matches. In some other languages this is known as "===" instead of "==".
- Posted on December 4, 2014 - 09:47 (UTC)
- Heeeere's Johnny!
-
Only use isEqualTo comparison on simple data types (strings, numbers, arrays, booleans), but avoid it with objects as that will always return false. For instance:
player isEqualTo player //returns false