private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 50: | Line 50: | ||
|r3= [[Nothing]] | |r3= [[Nothing]] | ||
|x1= < | |x1= <sqf>private _varname = "this is my new variable"; // since Arma 3 v1.54 | ||
// identical, but less performant | |||
private "_varname"; | |||
_varname = "this is my new variable";</ | _varname = "this is my new variable"; | ||
</sqf> | |||
|x2= < | |x2= <sqf> | ||
private ["_varname1", "_varname2"]; | |||
_varname1 = "variable 1"; | _varname1 = "variable 1"; | ||
_varname2 = "variable 2";</ | _varname2 = "variable 2"; | ||
</sqf> | |||
|x3=< | |x3= <sqf> | ||
_lol = 123; | _lol = 123; call { hint str [_lol] }; // [123] | ||
_lol = 123; call { private "_lol"; hint str [_lol] }; // [any] | |||
</sqf> | |||
|x4=< | |x4= <sqf> | ||
_myvar = 123; | |||
systemChat str [_myvar]; // [123] | |||
call { | |||
systemChat str [_myvar]; // [123] | |||
private "_myvar"; | |||
systemChat str [_myvar]; // [any] | |||
_myvar = 345; | _myvar = 345; | ||
systemChat str [_myvar]; // [345] | |||
}; | }; | ||
systemChat str [_myvar]; // [123] | |||
</sqf> | |||
|seealso= [[param]] [[params]] | |seealso= [[param]] [[params]] {{HashLink|Variables#Scope}} | ||
}} | }} | ||
{{Note | |||
|user= Faguss | |||
|timestamp= 20100804133000 | |||
|text= The higher scope is also the script from which the function has been called.<br> | |||
in '''script2.sqf''': | in '''script2.sqf''': | ||
< | <sqf>_a = 2;</sqf> | ||
in '''script1.sqf''': | in '''script1.sqf''': | ||
< | <sqf> | ||
_a = 1; | |||
call compile preprocessFileLineNumbers "script2.sqf"; | |||
hint format ["%1", _a]; | |||
</sqf> | |||
Game will display 2.<br> | Game will display 2.<br> | ||
Inserting {{ic|[[private]] "_a"}} in the function prevents the change and so number 1 will be displayed on the screen. | Inserting {{ic|[[private]] "_a"}} in the function prevents the change and so number 1 will be displayed on the screen. | ||
}} | |||
{{Note | |||
|user= DreadedEntity | |||
Recursive loops require the use of [[private]]. Without it, your variables will be overwritten. | |timestamp= 20150225170600 | ||
|text= Recursive loops require the use of [[private]]. Without it, your variables will be overwritten. | |||
}} | |||
{{Note | |||
|user= 654wak654 | |||
|timestamp= 20180131103700 | |||
|text= This command is ''similar'' to javascript's [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let let] keyword.<br> | |||
This command is ''similar'' to javascript's [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let let] keyword.<br> | |||
'''EDIT:''' in the way that it scopes the variable to the innermost scope. Otherwise, let and private can behave differently - [[User:Lou Montana|Lou Montana]] ([[User talk:Lou Montana|talk]]) | '''EDIT:''' in the way that it scopes the variable to the innermost scope. Otherwise, let and private can behave differently - [[User:Lou Montana|Lou Montana]] ([[User talk:Lou Montana|talk]]) | ||
}} | |||
Revision as of 17:04, 4 April 2022
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
- Parameters:
- _identifier: underscored variable name, for example _myVar
- value: Anything: value to assign to the variable
- Return Value:
- Nothing
Examples
- Example 1:
- Example 2:
- Example 3:
- 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:
- param params Variables - 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
- Posted on Aug 04, 2010 - 13:30 (UTC)
-
The higher scope is also the script from which the function has been called.
in script2.sqf:in script1.sqf: Game will display 2.
Insertingprivate "_a"
in the function prevents the change and so number 1 will be displayed on the screen.
- Posted on Feb 25, 2015 - 17:06 (UTC)
- Recursive loops require the use of private. Without it, your variables will be overwritten.
- Posted on Jan 31, 2018 - 10:37 (UTC)
-
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)
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Variables