Arma 3 Scripting

+

  • 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 + ARRAY have different behaviours:

  • ARRAY + [] creates copy of the 1st dimension, but preserves references in other dimensions (shallow copy).
  • + ARRAY clones 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:

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:

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]

See also

Operators · pushBack · append · merge