+
- Arma 3 v0.50
- First in Operation Flashpoint v1.00
Command · also in Arrays, HashMap, Strings · Markdown · JSON · original wiki page
Description
Add two Numbers, concatenate two Arrays or two Strings, or create a copy of an Array or HashMap.
Warning
Array copy methods
ARRAY + []and+ ARRAYhave different behaviours:
ARRAY + []creates copy of the 1st dimension, but preserves references in other dimensions (shallow copy).+ ARRAYclones every element, so if the array is multi-dimensional, the created copy contains no references (deep copy). See Example 6.
Syntax
Syntax 1
numberA + numberB
Parameters:
Returns: Number - the sum of numberA and numberB
Syntax 2
+ number
Parameters:
number: Number
Returns: Number - the value of the parameter number
Syntax 3
arrayA + arrayB
Parameters:
Returns: Array of Anything - a new array filled with arrayA and arrayB elements, in that order
Syntax 4
stringA + stringB
Parameters:
Returns: String - a string concatenating stringA and stringB
Syntax 5
+ array
Parameters:
Returns: Array of Anything - a new instance of the provided array filled with same elements (deep copy)
Syntax 6
since arma3 2.04
+ hashMap
Parameters:
hashMap: HashMap
Returns: HashMap - a new instance of the provided HashMap filled with the same key-value pairs (deep copy)
Examples
Example 1
5 + 3 // returns 8
-5 + -3 // returns -8
Example 2
+ 2 // returns 2
+ -7 // returns -7
Example 3
_arrayA = [1,2,3];
_arrayB = [3,4,5];
_arrayAB = _arrayA + _arrayB; // _arrayAB = [1,2,3,3,4,5]
// _arrayA and _arrayB remain unchanged
Example 4
_result = "Hello" + " " + "there"; // "Hello there"
Example 5
_arrayA = [1,2,3];
_arrayB = + _arrayA;
_arrayB set [0, 99]; // _arrayA = [1,2,3], _arrayB = [99,2,3]
Example 6
Shallow copy with ARRAY + []:
private _subArray = [1, 2, 3];
private _array1 = [_subArray, 1, 2, 3];
private _array2 = _array1 + [];
_array2 select 0 set [0, "oops"];
hint str _subArray; // ["oops", 2, 3]
Deep copy with + ARRAY:
private _subArray = [1, 2, 3];
private _array1 = [_subArray, 1, 2, 3];
private _array2 = + _array1;
_array2 select 0 set [0, "oops"];
hint str _subArray; // [1, 2, 3]