+: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Fix sorting key)
m (Text replacement - "\| *([Cc]omments|COMMENTS|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments \("local" or "global"\)|Multiplayer Effects \("local" or "global"\)|Multiplayer Execution \("server" or...)
Line 1: Line 1:
{{Command|Comments=
{{Command


| ofp |Game=
| ofp |Game=


|1.00|Game Version (number surrounded by NO SPACES)=
|1.00


|arg=  |Multiplayer Arguments ("local" or "global")=
|arg=   


|eff=  |Multiplayer Effects ("local" or "global")=
|eff=   


|serverExec=  |Multiplayer Execution ("server" or empty)=
|serverExec=   


|gr1= Math |GROUP1=
|gr1= Math  


| Add two numbers, concatenate two arrays or two strings, or duplicate an array. For arrays also see [[pushBack]] and [[append]].  
| Add two numbers, concatenate two arrays or two strings, or duplicate an array. For arrays also see [[pushBack]] and [[append]].  
Line 18: Line 18:
* <tt>ARRAY + []</tt> creates copy of the 1st dimension, but preserves references in other dimensions ({{Wikipedia|Object copying#Shallow copy|shallow copy}}).
* <tt>ARRAY + []</tt> creates copy of the 1st dimension, but preserves references in other dimensions ({{Wikipedia|Object copying#Shallow copy|shallow copy}}).
* <tt>+ARRAY</tt> clones every element, so if the array is multi-dimensional, the created copy contains no references ({{Wikipedia|Object copying#Deep copy|deep copy}}).
* <tt>+ARRAY</tt> clones every element, so if the array is multi-dimensional, the created copy contains no references ({{Wikipedia|Object copying#Deep copy|deep copy}}).
See [[#Examples|Example 6]].}} |Description=
See [[#Examples|Example 6]].}}  


| numberA [[+]] numberB |Syntax=
| numberA [[+]] numberB  


|p1= numberA: [[Number]] |Parameter 1=
|p1= numberA: [[Number]]  


|p2= numberB: [[Number]] |Parameter 2=
|p2= numberB: [[Number]]  


| [[Number]] - the sum of ''numberA'' and ''numberB'' |Return Value=
| [[Number]] - the sum of ''numberA'' and ''numberB''  


|s2= [[+]] numberA |Alternative Syntax=
|s2= [[+]] numberA  


|p21= numberA: [[Number]] |Alternative Parameter 1=
|p21= numberA: [[Number]]  


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


|x1= <code> 5 [[+]]  3; {{codecomment|// returns 8}}
|x1= <code> 5 [[+]]  3; {{codecomment|// returns 8}}
-5 [[+]] -3; {{codecomment|// returns -8}}</code> |Example 1=
-5 [[+]] -3; {{codecomment|// returns -8}}</code>  


|x2= <code>[[+]]  2; {{codecomment|// returns  2}}
|x2= <code>[[+]]  2; {{codecomment|// returns  2}}
[[+]] -7; {{codecomment|// returns -7}}</code> |Example 2=
[[+]] -7; {{codecomment|// returns -7}}</code>  


|x3= <code>_arrayA = [1,2,3];
|x3= <code>_arrayA = [1,2,3];
_arrayB = [3,4,5];
_arrayB = [3,4,5];
_arrayAB = _arrayA + _arrayB; {{codecomment|// _arrayAB {{=}} [1,2,3,3,4,5]
_arrayAB = _arrayA + _arrayB; {{codecomment|// _arrayAB {{=}} [1,2,3,3,4,5]
// _arrayA and _arrayB remain unchanged}}</code> |Example 3=
// _arrayA and _arrayB remain unchanged}}</code>  


|x4= <code>_result = "Hello" + " " + "there"; {{codecomment|// "Hello there"}}</code> |Example 4=
|x4= <code>_result = "Hello" + " " + "there"; {{codecomment|// "Hello there"}}</code>  


|x5= <code>_arrayA = [1,2,3];
|x5= <code>_arrayA = [1,2,3];
_arrayB = +_arrayA;
_arrayB = +_arrayA;
_arrayB [[set]] [0, 99]; {{codecomment|// _arrayA {{=}} [1,2,3], _arrayB {{=}} [99,2,3]}}</code> |Example 5=
_arrayB [[set]] [0, 99]; {{codecomment|// _arrayA {{=}} [1,2,3], _arrayB {{=}} [99,2,3]}}</code>  


|x6= Shallow copy with <tt>ARRAY + []</tt>:
|x6= Shallow copy with <tt>ARRAY + []</tt>:
Line 84: Line 84:
[[private]] _array2 {{=}} +_array1;
[[private]] _array2 {{=}} +_array1;
_array2 [[select]] 0 [[set]] [0, "oops"];
_array2 [[select]] 0 [[set]] [0, "oops"];
[[hint]] [[str]] _subArray; {{cc|[1, 2, 3]}}</code> |Example 6=
[[hint]] [[str]] _subArray; {{cc|[1, 2, 3]}}</code>  


| [[Operators]], [[pushBack]], [[append]] |See Also=
| [[Operators]], [[pushBack]], [[append]] |See Also=

Revision as of 16:02, 17 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

Bottom Section