Description
Sets a variable to the innermost scope. See also param and params.
Warning
Syntax
Syntax 1
private variableName
Parameters:
variableName: String - e.g "_myVar"
Returns: Nothing
Syntax 2
private variableNameList
Parameters:
variableNameList: Array of Strings - e.g ["_target", "_damage"]
Returns: Nothing
Syntax 3
since arma3 1.54
private _identifier = value From Arma 2 v1.00 to Arma 3 v1.52: see local
Parameters:
_identifier: underscored variable name, for example _myVar
value: Anything: value to assign to the variable
Returns: Nothing
Examples
Example 1
private _varname = "this is my new variable";
private "_varname";
_varname = "this is my new variable";
Example 2
private ["_varname1", "_varname2"];
_varname1 = "variable 1";
_varname2 = "variable 2";
Example 3
_lol = 123; call { hint str [_lol] };
_lol = 123; call { private "_lol"; hint str [_lol] };
Example 4
_myvar = 123;
systemChat str [_myvar];
call {
systemChat str [_myvar];
private "_myvar";
systemChat str [_myvar];
_myvar = 345;
systemChat str [_myvar];
};
systemChat str [_myvar];
See also
param · params · privateAll
The higher scope is also the script from which the function has been called.
in script2.sqf:
_a = 2;
in script1.sqf:
_a = 1;
call compile preprocessFileLineNumbers "script2.sqf";
hint format ["%1", _a];
Game will display 2.
Inserting private "_a" in the function prevents the change and so number 1 will be displayed on the screen.
Recursive loops require the use of private. Without it, your variables will be overwritten.
This command is similar to javascript's let keyword.
EDIT: in the way that it scopes the variable to the innermost scope. Otherwise, let and private can behave differently - Lou Montana (talk)