isEqualTo: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Tajin's note is better explained and has more information. removing mine as it is irrelevant)
(example)
Line 26: Line 26:
_arr2 = [1,[2,[3]]];
_arr2 = [1,[2,[3]]];
[[if]] (_arr1 [[isEqualTo]] _arr2) [[then]] {[[hint]] "Arrays match!"}</code> |= Example 1
[[if]] (_arr1 [[isEqualTo]] _arr2) [[then]] {[[hint]] "Arrays match!"}</code> |= Example 1
 
|x2= <code>[[if]] (a [[isEqualTo]] b) [[then]] {[[hint]] "a is equal to b"};
[[if]] !(a [[isEqualTo]] b) [[then]] {[[hint]] "a is not equal to b"};</code> |= Example 2


____________________________________________________________________________________________
____________________________________________________________________________________________

Revision as of 19:57, 14 May 2015

Hover & click on the images for description

Description

Description:
Performs strict comparison between var1 and var2 and returns true if equal otherwise false.

Some differences between == and isEqualTo:
  • Performs case sensitive comparison on Strings
  • Doesn't throw error when comparing different types, i.e. ("eleven" isEqualTo 11)
  • Can compare Arrays and Booleans
Groups:
Uncategorised

Syntax

Syntax:
var1 isEqualTo var2
Parameters:
var1: Anything
var2: Anything
Return Value:
Boolean

Examples

Example 1:
_arr1 = [1,[2,[3]]]; _arr2 = [1,[2,[3]]]; if (_arr1 isEqualTo _arr2) then {hint "Arrays match!"}
Example 2:
if (a isEqualTo b) then {hint "a is equal to b"}; if !(a isEqualTo b) then {hint "a is not equal to b"};

Additional Information

See also:
Operatorsinfindsetresizeswitch

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

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 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 "==".