isNil: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Add example, comments cleanup)
m (Fix description)
Line 10: Line 10:
The command returns [[true]] if the variable or the expression result is undefined (i.e. the expression result is [[Nothing]]), and [[false]] in all other cases.
The command returns [[true]] if the variable or the expression result is undefined (i.e. the expression result is [[Nothing]]), and [[false]] in all other cases.
{{Informative|{{GVI|ofp|1.00}} [[isNil]] doesn't exist in {{ofp}}, you can emulate it:
{{Informative|{{GVI|ofp|1.00}} [[isNil]] doesn't exist in {{ofp}}, you can emulate it:
<code>{{codecomment|// [[SQS syntax]]}}
<code>{{codecomment|// [[SQS syntax]]}}<br><!--
_nil {{=}} [[format]] ["%1", _undefinedVariable]
-->_nil {{=}} [[format]] ["%1", _undefinedVariable]<br><!--
? ([[format]] ["%1", foo] {{=}}{{=}} _nil) : foo {{=}} "Hello World!"</code>
-->? ([[format]] ["%1", foo] {{=}}{{=}} _nil) : foo {{=}} "Hello World!"</code>
<code>{{codecomment|// [[SQF syntax]]}}
<code>{{codecomment|// [[SQF syntax]]}}<br><!--
_nil {{=}} [[format]] ["%1", _undefinedVariable];
-->_nil {{=}} [[format]] ["%1", _undefinedVariable];<br><!--
[[if]] ([[format]] ["%1", foo] {{=}}{{=}} _nil) [[then]] { foo {{=}} "Hello World!"; };</code>}} |Description=
-->[[if]] ([[format]] ["%1", foo] {{=}}{{=}} _nil) [[then]] { foo {{=}} "Hello World!"; };</code>}} |Description=
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[isNil]] variableName |Syntax=
| [[isNil]] variableName |Syntax=


|p1= variableName: [[String]] - name of [[missionNamespace]] variable (for example "someVar") or local variable (for example "_someVar") |Parameter 1=
|p1= variableName: [[String]] - name of a [[missionNamespace]] variable (e.g "someVar") or a local variable (e.g "_someVar") |Parameter 1=


| [[Boolean]] - [[true]] if variable is [[nil]] |Return value=
| [[Boolean]] - [[true]] if variable is [[nil]] |Return value=
Line 27: Line 27:


|p21= code: [[Code]] - code to evaluate:
|p21= code: [[Code]] - code to evaluate:
* the code '''will''' be executed. {{Inline code|[[isNil]] { [[player]] [[setDamage]] 1; };}} ''will'' kill the player
* the code '''will''' be executed; {{Inline code|[[isNil]] { [[player]] [[setDamage]] 1; };}} ''will'' kill the player
* the code will be executed in [[Scheduler#Unscheduled_Environment|'''unscheduled''' environment]]
* the code will be executed in [[Scheduler#Unscheduled_Environment|'''unscheduled''' environment]]
&nbsp;|Parameter 21=
&nbsp;|Parameter 21=
Line 34: Line 34:
____________________________________________________________________________________________
____________________________________________________________________________________________


|x1= <code>[[if]] ([[isNil]] "_pokus") [[then]] { _pokus = 0; };</code> |Example1=
|x1= <code>[[if]] ([[isNil]] "pokus") [[then]] { pokus = 0; };</code> |Example1=


|x2= <code>[[isNil]] {[[player]] [[getVariable]] "someVar"};</code> |Example2=
|x2= <code>[[isNil]] { [[player]] [[getVariable]] "someVar" };</code> |Example2=


|x3= <code>_myArray = [0,1];
|x3= <code>_myArray = [0, 1];
[[isNil]] { _myArray [[select]] 0 }; {{codecomment|// returns [[false]]}}
[[isNil]] { _myArray [[select]] 0 }; {{cc|returns [[false]]}}
[[isNil]] { _myArray [[select]] 1 }; {{codecomment|// returns [[false]]}}
[[isNil]] { _myArray [[select]] 1 }; {{cc|returns [[false]]}}
[[isNil]] { _myArray [[select]] 2 }; {{codecomment|// returns [[true]]}}
[[isNil]] { _myArray [[select]] 2 }; {{cc|returns [[true]]}}
[[isNil]] { _myArray [[select]] 3 }; {{codecomment|// throws a script error. only length+1 select is allowed}}
[[isNil]] { _myArray [[select]] 3 }; {{cc|throws a script error. only length+1 select is allowed}}
</code> |Example 3=
</code> |Example 3=
____________________________________________________________________________________________
____________________________________________________________________________________________

Revision as of 22:12, 18 September 2019

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
Tests whether the variable defined by the String argument is undefined, or whether an expression result passed as Code is undefined.
The command returns true if the variable or the expression result is undefined (i.e. the expression result is Nothing), and false in all other cases.
Logo A0.png1.00 isNil doesn't exist in Operation Flashpoint, you can emulate it:

// SQS syntax
_nil = format ["%1", _undefinedVariable]
? (format ["%1", foo] == _nil) : foo = "Hello World!"

// SQF syntax
_nil = format ["%1", _undefinedVariable];
if (format ["%1", foo] == _nil) then { foo = "Hello World!"; };
Groups:
Uncategorised

Syntax

Syntax:
isNil variableName
Parameters:
variableName: String - name of a missionNamespace variable (e.g "someVar") or a local variable (e.g "_someVar")
Return Value:
Boolean - true if variable is nil

Alternative Syntax

Syntax:
isNil code
Parameters:
code: Code - code to evaluate:  
Return Value:
Boolean - true if code returns something other than Nothing

Examples

Example 1:
if (isNil "pokus") then { pokus = 0; };
Example 2:
isNil { player getVariable "someVar" };
Example 3:
_myArray = [0, 1]; isNil { _myArray select 0 }; // returns false isNil { _myArray select 1 }; // returns false isNil { _myArray select 2 }; // returns true isNil { _myArray select 3 }; // throws a script error. only length+1 select is allowed

Additional Information

See also:
nilVariables

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

Bottom Section