private: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(formatting syntax/example, wikifying link)
mNo edit summary
Line 28: Line 28:
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
 
<dd class="notedate">Posted on Sep 24, 2009 15:04
 
 
 
<dt class="note">'''[[User:ColonelSandersLite|ColonelSandersLite]]'''
<dt class="note">'''[[User:ColonelSandersLite|ColonelSandersLite]]'''
<dd class="note"><br>
<dd class="note"><br>
Line 37: Line 34:
Using the private command allows you to declare a variable in the current scope, without regards to variables in a higher scope with the same name.  Note that if you try to declare a variable without an underscore (meaning it's global) with the private command, it will cause an error.  Specifically: "Error Local variable in global space".<br>
Using the private command allows you to declare a variable in the current scope, without regards to variables in a higher scope with the same name.  Note that if you try to declare a variable without an underscore (meaning it's global) with the private command, it will cause an error.  Specifically: "Error Local variable in global space".<br>
Here's a code example with output for your benefit.<br>
Here's a code example with output for your benefit.<br>
<code>
  _foo = 10;
  _foo = 10;
  if (true) then
  if (true) then
Line 45: Line 43:
  };
  };
  player sideChat format ["%1", _foo];
  player sideChat format ["%1", _foo];
<br>
</code>
In this example, the first sidechat (innermost) returns 5 while the second sidechat (outermost) returns 10.<br>
In this example, the first sidechat (innermost) returns 5 while the second sidechat (outermost) returns 10.<br>
<br>
<code>
  if (true) then
  if (true) then
  {
  {
Line 54: Line 52:
     player sideChat format ["%1", _bar];
     player sideChat format ["%1", _bar];
  };
  };
<br>
</code>
In this example, the private command does nothing and is simply a waste of code, assuming there is no higher level code to interfere with the if statement.<br>
In this example, the private command does nothing and is simply a waste of code, assuming there is no higher level code to interfere with the if statement.<br>
<dd class="notedate">Posted on August 4, 2010
<dd class="notedate">Posted on August 4, 2010
<dt class="note">'''[[User:Faguss|Faguss]]'''
<dt class="note">'''[[User:Faguss|Faguss]]'''
Line 69: Line 65:
Game will display 2.<br><br>
Game will display 2.<br><br>
Inserting <i>private "_a"</i> in the function prevents the change and so number 1 will be displayed on the screen.
Inserting <i>private "_a"</i> in the function prevents the change and so number 1 will be displayed on the screen.
<!-- Note Section END -->
<!-- Note Section END -->
</dl>
</dl>

Revision as of 17:16, 2 April 2014

Hover & click on the images for description

Description

Description:
Sets a variable to the innermost scope. The variable has to be local.
Groups:
Uncategorised

Syntax

Syntax:
private variableName
Parameters:
variableName: String
Return Value:
Nothing

Alternative Syntax

Syntax:
private variableNameList
Parameters:
variableNameList: Array of Strings
Return Value:
Nothing

Examples

Example 1:
private "_varname";
Example 2:
private ["_varname1", "_varname2"];

Additional Information

See also:
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

Notes

Posted on Sep 24, 2009 15:04
ColonelSandersLite

The example provided is fairly worthless without a context.
Using the private command allows you to declare a variable in the current scope, without regards to variables in a higher scope with the same name. Note that if you try to declare a variable without an underscore (meaning it's global) with the private command, it will cause an error. Specifically: "Error Local variable in global space".
Here's a code example with output for your benefit.
_foo = 10; if (true) then { private ["_foo"]; _foo = 5; player sideChat format ["%1", _foo]; }; player sideChat format ["%1", _foo]; In this example, the first sidechat (innermost) returns 5 while the second sidechat (outermost) returns 10.
if (true) then { private ["_bar"]; _bar = 5; player sideChat format ["%1", _bar]; }; In this example, the private command does nothing and is simply a waste of code, assuming there is no higher level code to interfere with the if statement.
Posted on August 4, 2010
Faguss
The higher scope is also the script from which the function has been called.
If you've got in the script: _a = 1 call loadFile "function.sqf" hint format ["%1", _a] And in the function.sqf: _a = 2; Game will display 2.

Inserting private "_a" in the function prevents the change and so number 1 will be displayed on the screen.

Bottom Section