+: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Fix sorting key) |
Lou Montana (talk | contribs) 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 | {{Command | ||
| ofp |Game= | | ofp |Game= | ||
|1.00 | |1.00 | ||
|arg= | |arg= | ||
|eff= | |eff= | ||
|serverExec= | |serverExec= | ||
|gr1= Math | |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]].}} | See [[#Examples|Example 6]].}} | ||
| numberA [[+]] numberB | | numberA [[+]] numberB | ||
|p1= numberA: [[Number]] | |p1= numberA: [[Number]] | ||
|p2= numberB: [[Number]] | |p2= numberB: [[Number]] | ||
| [[Number]] - the sum of ''numberA'' and ''numberB'' | | [[Number]] - the sum of ''numberA'' and ''numberB'' | ||
|s2= [[+]] numberA | |s2= [[+]] numberA | ||
|p21= numberA: [[Number]] | |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> | -5 [[+]] -3; {{codecomment|// returns -8}}</code> | ||
|x2= <code>[[+]] 2; {{codecomment|// returns 2}} | |x2= <code>[[+]] 2; {{codecomment|// returns 2}} | ||
[[+]] -7; {{codecomment|// returns -7}}</code> | [[+]] -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> | // _arrayA and _arrayB remain unchanged}}</code> | ||
|x4= <code>_result = "Hello" + " " + "there"; {{codecomment|// "Hello there"}}</code> | |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> | _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> | [[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
Description
- Description:
- Add two numbers, concatenate two arrays or two strings, or duplicate an array. For arrays also see pushBack and append.
- Groups:
- Math
Syntax 1
- Syntax:
- numberA + numberB
- Parameters:
- numberA: Number
- numberB: Number
- Return Value:
- Number - the sum of numberA and numberB
Syntax 2
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
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
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Command Group: Math
- Scripting Commands OFP 1.99
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.46
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 3: Scripting Commands