点击图片可看到更多讯息
开始使用于
- 游戏:
- Operation Flashpoint
- 版本:
- 1.00
描述
- 描述:
- Sets a variable to the innermost scope as demonstrated in Example 3.
Since Arma 3 v1.53.132932 private can be used as keyword as shown in Example 4.
基本句法
替代句法
替代句法2
- 句法:
- private variable = value (Since Arma 3 v1.53.132932)
- 参数:
- variable: underscored variable, for example _myvar
- value: Anything: value to assign to the variable
- 返回值:
- Nothing
范例
- 范例1:
private "_varname";
- 范例2:
private ["_varname1", "_varname2"];
- 范例3:
_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]
- 范例4:
- Usage of private as keyword:
private _myvar = 123; //is the same as private "_myvar"; _myvar = 123;
额外资讯
- 多人游戏:
- -
- 也可以看看:
- Scope
注意事项
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 compile 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
- Posted on February 25, 2015 - 17:06 (UTC)
- DreadedEntity
- Recursive loops require the use of private. Without it, your variables will be overwritten.