isEqualTo: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "</dl> <!-- DISCONTINUE Notes --> <!-- CONTINUE Notes --> <dl class="command_description">" to "")
m (Text replacement - " {3,}\|" to " |")
Line 40: Line 40:
|x2= <code>[[if]] (a [[isEqualTo]] b) [[then]] {[[hint]] "a is equal to b"};
|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>
[[if]] !(a [[isEqualTo]] b) [[then]] {[[hint]] "a is not equal to b"};</code>


| [[isEqualTypeAll]], [[isEqualTypeAny]], [[isEqualType]], [[isEqualTypeParams]], [[isEqualTypeArray]], [[typeName]], [[Operators]], [[in]], [[find]], [[set]], [[resize]], [[switch]], [[a == b]]
| [[isEqualTypeAll]], [[isEqualTypeAny]], [[isEqualType]], [[isEqualTypeParams]], [[isEqualTypeArray]], [[typeName]], [[Operators]], [[in]], [[find]], [[set]], [[resize]], [[switch]], [[a == b]]

Revision as of 17:41, 18 January 2021

Hover & click on the images for description

Description

Description:
Performs strict comparison between var1 and var2 and returns true if equal, otherwise false. Strict means that it would check that both arguments are of the same data type and then compare the values.

Some differences between isEqualTo and ==:
A compiled code is not equal to the same compiled code made final: _a = compile "123"; _b = compileFinal "123"; _a isEqualTo _b; // false
When comparing Arrays, if an array contains nil element, the comparison will return false. For example:

private _array1 = [1,nil,2]; private _array2 = [1,nil,2]; _array1 isEqualTo _array2 // false UNLESS the compared arrays are the same array: private _array1 = [1,nil,2]; private _array2 = _array1; _array1 isEqualTo _array2 // true

See: BIS_fnc_areEqual vs. BIS_fnc_areEqualNotNil
Groups:
Variables

Syntax

Syntax:
val1 isEqualTo val2
Parameters:
val1: Anything
val2: 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:
isEqualTypeAllisEqualTypeAnyisEqualTypeisEqualTypeParamsisEqualTypeArraytypeNameOperatorsinfindsetresizeswitcha == b

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
Posted on July 19, 2014 - 19:48 (UTC)
AgentRev
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 "==".
Posted on November 3, 2016 - 02:39 (UTC)
Dedmen
When comparing with nil result is Nothing. "nil isEqualTo player" returns "Nothing" instead of expected "false" diag_log [nil isEqualTo player]; Will print "[bool]"