private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
Lou Montana (talk | contribs) (Fix Category:Pages using duplicate arguments in template calls and update description) |
||
Line 7: | Line 7: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| Sets a variable to the innermost scope as demonstrated in Example 3. | | 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: {{Inline code|[[private]] <span style{{=}}"color:red;font-weight:bold">_</span>myVar1 {{=}} "myVar";}}}} | ||
{{Warning | '''ALWAYS''' use the [[private]] keyword to declare local variables in order to avoid the accidental overwriting of the upper-scope's private variables!<br> | |||
See [[Variables#Scope|Scope]] for more information about variable scope.}} |DESCRIPTION= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | [[private]] variableName |SYNTAX= | ||
|p1= variableName: [[String]] |PARAMETER1= | |p1= variableName: [[String]] |PARAMETER1= | ||
| [[Nothing]] |RETURNVALUE= | | [[Nothing]] |RETURNVALUE= | ||
____________________________________________________________________________________________ | |||
|s2= [[private]] variableNameList |SYNTAX2= | |||
|p21= variableNameList: [[Array]] of [[String]]s |PARAMETER21= | |||
|r2= [[Nothing]] |RETURNVALUE2= | |r2= [[Nothing]] |RETURNVALUE2= | ||
____________________________________________________________________________________________ | |||
|s3 = [[private]] variable = value (''Since Arma 3 v1.53.132932'') |SYNTAX3= | |||
| | |p31= variable: underscored variable, for example ''_myvar'' |PARAMETER31= | ||
| | |p32= value: [[Anything]]: value to assign to the variable |PARAMETER32= | ||
|r3 = | |r3= [[Nothing]] |RETURNVALUE3= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>[[private]] " | |x1= <code>[[private]] _varname = "this is my new variable"; {{cc|since {{arma3}} v1.53 only}} | ||
| | |||
{{cc|identical, but less performant}} | |||
[[private]] "_varname"; | |||
_varname = "this is my new variable";</code> |EXAMPLE1= | |||
|x3=<code>_myvar = 123; | |x2= <code>[[private]] ["_varname1", "_varname2"]; | ||
[[systemChat]] [[str]] [_myvar]; | _varname1 = "variable 1"; | ||
_varname2 = "variable 2";</code> |EXAMPLE2= | |||
|x3=<code>_lol = 123; [[call]] {[[hint]] [[str]] [_lol]}; {{cc|[123]}} | |||
_lol = 123; [[call]] { [[private]] "_lol"; [[hint]] [[str]] [_lol] }; {{cc|[any]}}</code> |EXAMPLE3= | |||
|x4=<code>_myvar = 123; | |||
[[systemChat]] [[str]] [_myvar]; {{cc|[123]}} | |||
[[call]] { | [[call]] { | ||
[[systemChat]] [[str]] [_myvar]; | [[systemChat]] [[str]] [_myvar]; {{cc|[123]}} | ||
[[private]] "_myvar"; | [[private]] "_myvar"; | ||
[[systemChat]] [[str]] [_myvar]; | [[systemChat]] [[str]] [_myvar]; {{cc|[any]}} | ||
_myvar = 345; | _myvar = 345; | ||
[[systemChat]] [[str]] [_myvar]; | [[systemChat]] [[str]] [_myvar]; {{cc|[345]}} | ||
}; | }; | ||
[[systemChat]] [[str]] [_myvar]; | [[systemChat]] [[str]] [_myvar]; {{cc|[123]}}</code>|Example4= | ||
| | | [[param]], [[params]], [[Variables#Scope|Scope]] |SEEALSO= | ||
}} | }} | ||
Line 53: | Line 66: | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<!-- Note Section BEGIN --> | <!-- Note Section BEGIN --> | ||
<dd class="notedate">Posted on August 4, 2010 | <dd class="notedate">Posted on August 4, 2010 | ||
<dt class="note"> | <dt class="note">[[User:Faguss|Faguss]] | ||
<dd class="note">The higher scope is also the script from which the function has been called.<br> | <dd class="note">The higher scope is also the script from which the function has been called.<br> | ||
in '''script2.sqf''': | |||
<code> | <code>_a = 2;</code> | ||
in '''script1.sqf''': | |||
<code>_a = 1; | |||
[[call]] [[compile]] [[preprocessFileLineNumbers]] "script2.sqf"; | |||
</code> | [[hint]] format ["%1", _a];</code> | ||
<br> | |||
Game will display 2.<br> | |||
Inserting {{Inline code|[[private]] "_a"}} in the function prevents the change and so number 1 will be displayed on the screen. | |||
Game will display 2. | |||
Inserting | |||
<dd class="notedate">Posted on February 25, 2015 - 17:06 (UTC)</dd> | <dd class="notedate">Posted on February 25, 2015 - 17:06 (UTC)</dd> | ||
<dt class="note">[[User:DreadedEntity|DreadedEntity]]</dt> | <dt class="note">[[User:DreadedEntity|DreadedEntity]]</dt> | ||
Line 99: | Line 85: | ||
Recursive loops require the use of [[private]]. Without it, your variables will be overwritten. | Recursive loops require the use of [[private]]. Without it, your variables will be overwritten. | ||
</dd> | </dd> | ||
<dd class="notedate">Posted on January 31, 2018 - 10: | |||
<dt class="note"> | <dd class="notedate">Posted on January 31, 2018 - 10:37 (UTC)</dd> | ||
<dd class="note" | <dt class="note">[[User:654wak654|654wak654]]</dt> | ||
<dd class="note"> | |||
This command has the same functionality as javascript's let keyword.<br> | |||
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let | |||
< | |||
</dd> | </dd> | ||
Line 140: | Line 98: | ||
<h3 style="display:none">Bottom Section</h3> | <h3 style="display:none">Bottom Section</h3> | ||
[[Category:Scripting Commands|PRIVATE]] | [[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands OFP 1.96|PRIVATE]] | |||
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands ArmA|PRIVATE]] | [[Category:Scripting Commands ArmA|PRIVATE]] | ||
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands ArmA2|{{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:52, 4 September 2019
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 has the same functionality as javascript's let keyword.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
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 ArmA
- Scripting Commands ArmA2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters