private

From Bohemia Interactive Community
Jump to: navigation, search
Introduced with Operation Flashpoint version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Operation Flashpoint
Version:
1.00

Description

Description:
Sets a variable to the innermost scope as demonstrated in Example 3.
Since Arma 3 v1.53.132932 private can be used as keyword as shown in Example 4.

Syntax

Syntax:
private variableName
Parameters:
variableName: String
Return Value:
Nothing

Alternative Syntax

Syntax:
private variableNameList
Parameters:
variableNameList: Array of Strings
Return Value:
Nothing

Alternative Syntax 2

Syntax:
private variable = value         (Since Arma 3 v1.53.132932)
Parameters:
variable: underscored variable, for example _myvar
value: Anything: value to assign to the variable
Return Value:
Nothing

Examples

Example 1:
private "_varname";
Example 2:
private ["_varname1", "_varname2"];
Example 3:
_myvar = 123; systemChat str [_myvar]; // -- [123] call { systemChat str [_myvar]; // -- [123] private "_myvar"; systemChat str [_myvar]; // -- [any] _myvar = 345; systemChat str [_myvar]; // -- [345] }; systemChat str [_myvar]; // -- [123]
Example 4:
Usage of private as keyword: private _myvar = 123; //is the same as private "_myvar"; _myvar = 123;

Additional Information

Multiplayer:
-
See also:
Scope

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Posted on Sep 24, 2009 15:04
ColonelSandersLite

The example provided is fairly worthless without a context.
Using the private command allows you to declare a variable in the current scope, without regards to variables in a higher scope with the same name. Note that if you try to declare a variable without an underscore (meaning it's global) with the private command, it will cause an error. Specifically: "Error Local variable in global space".
Here's a code example with output for your benefit.
_foo = 10; if (true) then { private ["_foo"]; _foo = 5; player sideChat format ["%1", _foo]; }; player sideChat format ["%1", _foo]; In this example, the first sidechat (innermost) returns 5 while the second sidechat (outermost) returns 10.
if (true) then { private ["_bar"]; _bar = 5; player sideChat format ["%1", _bar]; }; In this example, the private command does nothing and is simply a waste of code, assuming there is no higher level code to interfere with the if statement.
Posted on August 4, 2010
Faguss
The higher scope is also the script from which the function has been called.
If you've got in the script: _a = 1; call compile loadFile "function.sqf"; hint format ["%1", _a]; And in the function.sqf: _a = 2; Game will display 2.

Inserting private "_a" in the function prevents the change and so number 1 will be displayed on the screen.

Bottom Section

Posted on February 25, 2015 - 17:06 (UTC)
DreadedEntity
Recursive loops require the use of private. Without it, your variables will be overwritten.