Arma 3 Scripting

isNil

  • Arma 3 v0.50
  • First in Armed Assault v1.00

Command · Markdown · JSON · original wiki page

Description

Tests whether a variable is nil or undefined from its identifier, or whether the given expression evaluates to nil or Nothing.

Note

This command does not exist in Operation Flashpoint/Arma: Cold War Assault but can be emulated (see #Example 5).

Syntax

Syntax 1

isNil variableName

Parameters:

Returns: Boolean - true if variable is nil or undefined

Syntax 2

isNil code

Parameters:

Returns: Boolean - true if code returns Nothing, false otherwise

Syntax 3

since arma3 2.18

namespace isNil variableName

Parameters:

Returns: Boolean - true if variable is nil or undefined

Examples

Example 1

if (isNil "TAG_globalVariable") then { TAG_globalVariable = 0 };
if (isNil "_localVariable") then { hint "_localVariable is nil" };

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

Example 4

This trick forces executing something in Unscheduled Environment:

0 spawn {
    systemChat str canSuspend;        // chat shows true
    isNil { hint str canSuspend };    // hint shows false
};

Example 5

Operation Flashpoint String comparison workaround

SQS Syntax:

_nil = format ["%1", _undefinedVariable]
? (format ["%1", variableToTest] == _nil) : hint "variableToTest is nil"

SQF Syntax:

_nil = format ["%1", _undefinedVariable];
if (format ["%1", variableToTest] == _nil) then { hint "variableToTest is nil" };

See also

nil · Variables · Scheduler