private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "[[Category:Scripting Commands ArmA|" to "[[Category:Scripting Commands Armed Assault|") |
Lou Montana (talk | contribs) (Clarifiy misleading note, add links) |
||
Line 8: | Line 8: | ||
| 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]] | {{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 overwriting a local variable of the same name.}} |DESCRIPTION= | {{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]].}} |DESCRIPTION= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Line 88: | Line 88: | ||
<dt class="note">[[User:654wak654|654wak654]]</dt> | <dt class="note">[[User:654wak654|654wak654]]</dt> | ||
<dd class="note"> | <dd class="note"> | ||
This command | This command is ''similar'' to javascript's [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let let]] keyword. | ||
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let | '''EDIT:''' in the way that it scopes the variable to the innermost scope. Otherwise, let and private can behave differently. | ||
</dd> | </dd> | ||
Line 98: | Line 98: | ||
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands OFP 1.96| | [[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands Armed Assault| | [[Category:Scripting Commands Armed Assault|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]] |
Revision as of 16:37, 15 June 2020
Description
- Description:
- Sets a variable to the innermost scope as demonstrated in Example 3. See also param and params.
- Groups:
- Uncategorised
Syntax 1
Syntax 2
- Syntax:
- private variableNameList
- Parameters:
- variableNameList: Array of Strings
- variable: underscored variable, for example _myvar
- value: Anything: value to assign to the variable
- Return Value:
- Nothing
Syntax 3
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
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.
Bottom Section
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.99
- Scripting Commands Armed Assault
- Scripting Commands Arma 2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters