a == b: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (#)
(remove old inaccurate not with a newly updated & see also)
Line 29: Line 29:
|x2 = <code>? [[name]] [[player]] <nowiki>==</nowiki> "Billy" : [[hint]] "Hello Billy, how are you?"</code> |=
|x2 = <code>? [[name]] [[player]] <nowiki>==</nowiki> "Billy" : [[hint]] "Hello Billy, how are you?"</code> |=


| [[Operators]] |= See also
| [[Operators]], [[isEqualTo]] |= See also


}}
}}
Line 36: Line 36:
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on August 14, 2006 - 14:03
<dd class="notedate">Posted on Feb 5, 2007 - 10:38
<dt class="note">'''[[User:Hoz|hoz]]'''<dd class="note">
<dt class="note">'''[[User:Ceeeb|Ceeeb]]'''<dd class="note">
'''''Comments from before the template conversion.'''''
 
Does not work with the types [[Boolean]] and [[Array]].
 
i.e. the arguments:
 
? MyBoolean <nowiki>==</nowiki> true : [[hint]] "This is a test."
 
and
 
? MyArray <nowiki>==</nowiki> [] : [[hint]] "This is a test."
 
...will cause errors.
 
Instead of the first line use:<br>
? MyBoolean : [[hint]] "This is a test."
 
The workaround for the second line is:<br>
? ([[count]] MyArray) <nowiki>==</nowiki> 0 : [[hint]] "This is a test."
 
 
<dt class="note">'''[[User:Ceeeb|Ceeeb]]'''
<dd class="note">
In '''OFP v1.96''', comparison of [[String|strings]] is not case sensitive. ''Example : "STRINGtext" == "stringTEXT" returns [[true]].''
In '''OFP v1.96''', comparison of [[String|strings]] is not case sensitive. ''Example : "STRINGtext" == "stringTEXT" returns [[true]].''
 
<dd class="notedate">Posted on Apr 15, 2014 - 15:34
 
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
In ArmA3 ver 1.16 for case sensitive comparison, array comparison and boolean comparison we can use [[switch do]]. e.g.
<code>
switch (_var0) do {
        case (_var1) : {true};
        default {false};
</code>
For script comparison we need to detect whether scripts are running in advance, then compose both into string:
<code> if(scriptdone _var0) then [{false},{(str _var0) == (str _var1)}];</code>
It is recommended to use [[isEqualTo]] for all types comparison, which is more functional and as fast as operator.
For multiple comparisons:
<code>
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
</code>
And we can use such workaround instead of using [[BIS_fnc_arrayCompare]] or [[BIS_fnc_areEqual]]
<!-- Note Section END -->
<!-- Note Section END -->
</dl>
</dl>

Revision as of 09:13, 15 April 2014

Hover & click on the images for description

Description

Description:
Check if one value is equal to another. Both values need to be of the same type.
Groups:
Uncategorised

Syntax

Syntax:
valuea == valueb
Parameters:
valuea: Number, Group, Side, String, Object, Structured Text, Config, Display or Control; since VBS2 1.24: Location
valueb: Number, Group, Side, String, Object, Structured Text, Config, Display or Control; since VBS2 1.24: Location
Return Value:
Boolean

Examples

Example 1:
if (player == leader group player) then { hint "You are the leader of your group." } else { hint "Someone else is the boss" }
Example 2:
? name player == "Billy" : hint "Hello Billy, how are you?"

Additional Information

See also:
OperatorsisEqualTo

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 Feb 5, 2007 - 10:38
Ceeeb
In OFP v1.96, comparison of strings is not case sensitive. Example : "STRINGtext" == "stringTEXT" returns true.
Posted on Apr 15, 2014 - 15:34
ffur2007slx2_5
In ArmA3 ver 1.16 for case sensitive comparison, array comparison and boolean comparison we can use switch do. e.g. switch (_var0) do { case (_var1) : {true}; default {false}; For script comparison we need to detect whether scripts are running in advance, then compose both into string: if(scriptdone _var0) then [{false},{(str _var0) == (str _var1)}]; It is recommended to use isEqualTo for all types comparison, which is more functional and as fast as operator. For multiple comparisons: 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 And we can use such workaround instead of using BIS_fnc_arrayCompare or BIS_fnc_areEqual

Bottom Section