private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - " \| *ofp * *\| *1.([0-9]{2}) * +\|([^g]|g[^a])" to " | ofp |1.$1 |game2= ofpe |version2= 1.00 |game3= arma1 |version3= 1.00 |game4= arma2 |version4= 1.00 |game5= arma2oa |version5= 1.50 |game6= tkoh |version6= 1.00 |game7= arm...) |
Lou Montana (talk | contribs) m (Text replacement - " \| *(([^=\| ]+)('''|\[\[)([^=\| ]+)) * +\|p1=" to " |s1= $1 |p1=") |
||
Line 28: | Line 28: | ||
{{Feature | 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]].}} | {{Feature | 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 | |s1= [[private]] variableName | ||
|p1= variableName: [[String]] - e.g <tt>"_myVar"</tt> | |p1= variableName: [[String]] - e.g <tt>"_myVar"</tt> |
Revision as of 23:23, 12 June 2021
Description
- Description:
- Description needed
- 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:
- See also needed
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
- 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)