isEqualTo: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 78: Line 78:
<dd class="note">
<dd class="note">
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.
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.
</dd>
</dl>
<!-- DISCONTINUE Notes -->
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on December 3, 2014 - 13:11 (UTC)</dd>
<dt class="note">[[User:Tajin|Tajin]]</dt>
<dd class="note">
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 "&#61;&#61;&#61;" instead of "&#61;&#61;".
</dd>
</dd>
</dl>
</dl>
<!-- DISCONTINUE Notes -->
<!-- DISCONTINUE Notes -->

Revision as of 14:11, 3 December 2014

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!"}

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