private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "_{10,} " to "") |
Lou Montana (talk | contribs) m (Text replacement - " *\| *([Cc]omments|COMMENTS|Game|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments( \("local" or "global"\))?|Effects|Multiplayer Effects( \("local" or "global"\))?|Multiplayer Exe...) |
||
Line 1: | Line 1: | ||
{{Command | {{Command | ||
| ofp | | ofp | ||
|1.00 | |1.00 | ||
|gr1 = Variables | |gr1 = Variables | ||
| Sets a variable to the innermost scope as demonstrated in Example 3. See also [[param]] and [[params]]. | | Sets a variable to the innermost scope as demonstrated in Example 3. See also [[param]] and [[params]]. | ||
{{Informative | [[private]] variables '''must''' start with an underscore: <tt>[[private]] '''{{Color|red|_}}'''myVar1 {{=}} "myVar";</tt> - see [[Identifier]].}} | {{Informative | [[private]] variables '''must''' start with an underscore: <tt>[[private]] '''{{Color|red|_}}'''myVar1 {{=}} "myVar";</tt> - see [[Identifier]].}} | ||
{{Warning | '''Always''' make your local variables '''private''' (through [[private]] or [[params]]) in order to avoid [[Variables#Scopes|overwriting a local variable of the same name]].}} | {{Warning | '''Always''' make your local variables '''private''' (through [[private]] or [[params]]) in order to avoid [[Variables#Scopes|overwriting a local variable of the same name]].}} | ||
| [[private]] variableName | | [[private]] variableName | ||
|p1= variableName: [[String]] - e.g <tt>"_myVar"</tt> | |p1= variableName: [[String]] - e.g <tt>"_myVar"</tt> | ||
| [[Nothing]] | | [[Nothing]] | ||
|s2= [[private]] variableNameList | |s2= [[private]] variableNameList | ||
|p21= variableNameList: [[Array]] of [[String]]s, e.g <tt>["_target", "_damage"]</tt> |PARAMETER21= | |p21= variableNameList: [[Array]] of [[String]]s, e.g <tt>["_target", "_damage"]</tt> |PARAMETER21= | ||
|r2= [[Nothing]] | |r2= [[Nothing]] | ||
|s3 = [[private]] _identifier = value {{Since|arma3|1.53.132932|y}} | |s3 = [[private]] _identifier = value {{Since|arma3|1.53.132932|y}} | ||
|p41= _identifier: underscored [[Identifier|variable name]], for example ''_myVar'' |PARAMETER41= | |p41= _identifier: underscored [[Identifier|variable name]], for example ''_myVar'' |PARAMETER41= | ||
Line 29: | Line 29: | ||
|p42= value: [[Anything]]: value to assign to the variable |PARAMETER42= | |p42= value: [[Anything]]: value to assign to the variable |PARAMETER42= | ||
|r3= [[Nothing]] | |r3= [[Nothing]] | ||
|x1= <code>[[private]] _varname = "this is my new variable"; {{cc|since {{arma3}} v1.53 only}} | |x1= <code>[[private]] _varname = "this is my new variable"; {{cc|since {{arma3}} v1.53 only}} | ||
Line 35: | Line 35: | ||
{{cc|identical, but less performant}} | {{cc|identical, but less performant}} | ||
[[private]] "_varname"; | [[private]] "_varname"; | ||
_varname = "this is my new variable";</code> | _varname = "this is my new variable";</code> | ||
|x2= <code>[[private]] ["_varname1", "_varname2"]; | |x2= <code>[[private]] ["_varname1", "_varname2"]; | ||
_varname1 = "variable 1"; | _varname1 = "variable 1"; | ||
_varname2 = "variable 2";</code> | _varname2 = "variable 2";</code> | ||
|x3=<code>_lol = 123; [[call]] { [[hint]] [[str]] [_lol] }; {{cc|[123]}} | |x3=<code>_lol = 123; [[call]] { [[hint]] [[str]] [_lol] }; {{cc|[123]}} | ||
_lol = 123; [[call]] { [[private]] "_lol"; [[hint]] [[str]] [_lol] }; {{cc|[any]}}</code> | _lol = 123; [[call]] { [[private]] "_lol"; [[hint]] [[str]] [_lol] }; {{cc|[any]}}</code> | ||
|x4=<code>_myvar = 123; | |x4=<code>_myvar = 123; | ||
Line 53: | Line 53: | ||
[[systemChat]] [[str]] [_myvar]; {{cc|[345]}} | [[systemChat]] [[str]] [_myvar]; {{cc|[345]}} | ||
}; | }; | ||
[[systemChat]] [[str]] [_myvar]; {{cc|[123]}}</code> | [[systemChat]] [[str]] [_myvar]; {{cc|[123]}}</code> | ||
| [[param]], [[params]], {{HashLink|Variables#Scope}} | | [[param]], [[params]], {{HashLink|Variables#Scope}} | ||
}} | }} | ||
Revision as of 01:12, 18 January 2021
Description
- Description:
- Sets a variable to the innermost scope as demonstrated in Example 3. See also param and params.
- Groups:
- Variables
Syntax 1
Syntax 2
- Syntax:
- private variableNameList
- Parameters:
- variableNameList: Array of Strings, e.g ["_target", "_damage"]
- Return Value:
- Nothing
Syntax 3
- Syntax:
- private _identifier = value Template:Since
- Parameters:
- _identifier: underscored variable name, for example _myVar
- value: Anything: value to assign to the variable
- Return Value:
- Nothing
Examples
- Example 1:
private _varname = "this is my new variable"; // since Arma 3 v1.53 only // identical, but less performant 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] }; // [123] _lol = 123; call { private "_lol"; hint str [_lol] }; // [any]
- Example 4:
_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]
Additional Information
- See also:
- paramparamsVariables - Scope
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 August 4, 2010
- Faguss
- 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.
Insertingprivate "_a"
in the function prevents the change and so number 1 will be displayed on the screen. - Posted on February 25, 2015 - 17:06 (UTC)
- DreadedEntity
- Recursive loops require the use of private. Without it, your variables will be overwritten.
- Posted on January 31, 2018 - 10:37 (UTC)
- 654wak654
-
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)
Bottom Section
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Command Group: Variables
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.99
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 3: Scripting Commands
- Take On Helicopters: Scripting Commands