private: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "// since Arma 3" to "// since {{arma3}}") |
Lou Montana (talk | contribs) (Add privateAll seeAlso link) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
|gr1= Variables | |gr1= Variables | ||
|descr= Sets a variable to the innermost scope | |descr= Sets a variable to the innermost scope (see {{Link|#Example 3}}). See also [[param]] and [[params]]. | ||
{{Feature | | {{Feature|informative|[[private]] variables '''must''' start with an underscore: {{hl|c= [[private]] '''{{Color|red|_}}'''myVar1 = "myVar";}} - see [[Identifier]].}} | ||
{{Feature | | {{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]].}} | ||
|s1= [[private]] variableName | |s1= [[private]] variableName | ||
Line 65: | Line 65: | ||
|x3= <sqf> | |x3= <sqf> | ||
_lol = | _lol = 123; call { hint str [_lol] }; // [123] | ||
_lol = | _lol = 123; call { private "_lol"; hint str [_lol] }; // [any] | ||
</sqf> | </sqf> | ||
Line 82: | Line 82: | ||
</sqf> | </sqf> | ||
|seealso= [[param]] [[params]] {{Link|Variables#Scopes}} | |seealso= [[param]] [[params]] [[privateAll]] {{Link|Variables#Scopes}} | ||
}} | }} | ||
Latest revision as of 15:12, 11 July 2024
Description
- Description:
- Sets a variable to the innermost scope (see 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 privateAll Variables - Scopes
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.
Inserting private "_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