+: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<!-- Appropriate categories go here -->" to "")
m (Text replacement - " *\| *([Cc]omments|COMMENTS|Game|[Gg]ame [Nn]ame( +[0-9])?|Game [Vv]ersion( +[0-9])?|Game Version \(number surrounded by NO SPACES\)|Arguments in MP|Multiplayer Arguments( \("local" or "global"\))?|Effects|Execution|Effects? in MP|M...)
Line 32: Line 32:
|p21= numberA: [[Number]]  
|p21= numberA: [[Number]]  


|r2= [[Number]] - returns ''numberA'' |Alternative Return Value=
|r2= [[Number]] - returns ''numberA''


|s3= arrayA [[+]] arrayB |Alternative Syntax 3=
|s3= arrayA [[+]] arrayB


|p41= arrayA: [[Array]] |Alternative 3 Parameter 1=
|p41= arrayA: [[Array]] |Alternative 3 Parameter 1=
Line 42: Line 42:
|r3= [[Array]] - a new array filled with ''arrayA'' and ''arrayB'' elements, in that order. |Alternative 3 Return Value=
|r3= [[Array]] - a new array filled with ''arrayA'' and ''arrayB'' elements, in that order. |Alternative 3 Return Value=


|s4= stringA [[+]] stringB |Alternative Syntax 4=
|s4= stringA [[+]] stringB


|p61= stringA: [[String]] |Alternative 4 Parameter 1=
|p61= stringA: [[String]] |Alternative 4 Parameter 1=
Line 50: Line 50:
|r4= [[String]] - a string concatenating ''stringA'' and ''stringB'' |Alternative 4 Return Value=
|r4= [[String]] - a string concatenating ''stringA'' and ''stringB'' |Alternative 4 Return Value=


|s5= [[+]] arrayA |Alternative Syntax 5=
|s5= [[+]] arrayA


|p81= arrayA: [[Array]] |Alternative 5 Parameter 1=
|p81= arrayA: [[Array]] |Alternative 5 Parameter 1=

Revision as of 10:28, 18 January 2021

Hover & click on the images for description

Description

Description:
Add two numbers, concatenate two arrays or two strings, or duplicate an array. For arrays also see pushBack and append.
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.
Groups:
Math

Syntax 1

Syntax:
numberA + numberB
Parameters:
numberA: Number
numberB: Number
Return Value:
Number - the sum of numberA and numberB

Syntax 2

Syntax:
+ numberA
Parameters:
numberA: Number
Return Value:
Number - returns numberA

Syntax 3

Syntax:
arrayA + arrayB
Parameters:
arrayA: Array
arrayB: Array
Return Value:
Array - a new array filled with arrayA and arrayB elements, in that order.

Syntax 4

Syntax:
stringA + stringB
Parameters:
stringA: String
stringB: String
Return Value:
String - a string concatenating stringA and stringB

Syntax 5

Syntax:
+ arrayA
Parameters:
arrayA: Array
Return Value:
Array - a new instance of array filled with same items.

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]

Additional Information

See also:
OperatorspushBackappend

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