+: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "{{Command " to "{{RV|type=command ") |
Lou Montana (talk | contribs) m (Text replacement - "(\|[pr][0-9]+ *= *[^- ]*) *- *T([a-z ])" to "$1 - t$2") |
||
(31 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{RV|type=command | {{RV|type=command | ||
| | |sortKey= # | ||
|1.00 | |game1= ofp | ||
|version1= 1.00 | |||
| | |game2= ofpe | ||
|version2= 1.00 | |||
| | |game3= arma1 | ||
|version3= 1.00 | |||
| | |game4= arma2 | ||
|version4= 1.00 | |||
|game5= arma2oa | |||
|version5= 1.50 | |||
|game6= tkoh | |||
|version6= 1.00 | |||
|game7= arma3 | |||
|version7= 0.50 | |||
|gr1= Math | |gr1= Math | ||
| Add two | |gr2= Arrays | ||
|gr3= HashMap | |||
|gr4= Strings | |||
|descr= Add two [[Number]]s, concatenate two [[Array]]s or two [[String]]s, or create a copy of an Array or [[HashMap]]. | |||
{{ | {{Feature|warning|[[Array]] copy methods {{hl|ARRAY + []}} and {{hl|+ ARRAY}} have different behaviours: | ||
* | * {{hl|ARRAY + []}} creates copy of the 1st dimension, but preserves references in other dimensions ({{Link|https://en.wikipedia.org/wiki/Object_copying#Shallow_copy|shallow copy}}). | ||
* | * {{hl|+ ARRAY}} clones every element, so if the array is multi-dimensional, the created copy contains no references ({{Link|https://en.wikipedia.org/wiki/Object_copying#Deep_copy|deep copy}}). | ||
See [[# | See [[#Example_6|Example 6]]. | ||
}} | |||
| numberA [[+]] numberB | |s1= numberA [[+]] numberB | ||
|p1= numberA: [[Number]] | |p1= numberA: [[Number]] | ||
|p2= numberB: [[Number]] | |p2= numberB: [[Number]] | ||
| [[Number]] - the sum of ''numberA'' and ''numberB'' | |r1= [[Number]] - the sum of ''numberA'' and ''numberB'' | ||
|s2= [[+]] | |s2= [[+]] number | ||
|p21= | |p21= number: [[Number]] | ||
|r2= [[Number]] - | |r2= [[Number]] - the value of the parameter ''number'' | ||
|s3= arrayA [[+]] arrayB | |s3= arrayA [[+]] arrayB | ||
|p41= arrayA: [[Array]] | |p41= arrayA: [[Array]] | ||
|p42= arrayB: [[Array]] | |p42= arrayB: [[Array]] | ||
|r3= [[Array]] - a new array filled with ''arrayA'' and ''arrayB'' elements, in that order | |r3= [[Array]] - a new array filled with ''arrayA'' and ''arrayB'' elements, in that order | ||
|s4= stringA [[+]] stringB | |s4= stringA [[+]] stringB | ||
|p61= stringA: [[String]] | |p61= stringA: [[String]] | ||
|p62= stringB: [[String]] | |p62= stringB: [[String]] | ||
|r4= [[String]] - a string concatenating ''stringA'' and ''stringB'' | |r4= [[String]] - a string concatenating ''stringA'' and ''stringB'' | ||
|s5= [[+]] | |s5= [[+]] array | ||
|p81= | |p81= array: [[Array]] | ||
|r5= [[Array]] - a new instance of array filled with same | |r5= [[Array]] - a new instance of the provided array filled with same elements ({{Link|https://en.wikipedia.org/wiki/Object_copying#Deep_copy|deep copy}}) | ||
| | |s6= [[+]] hashMap | ||
| | |s6since= arma3 2.04 | ||
| | |p101= hashMap: [[HashMap]] | ||
|r6= [[HashMap]] - a new instance of the provided [[HashMap]] filled with the same key-value pairs ({{Link|https://en.wikipedia.org/wiki/Object_copying#Deep_copy|deep copy}}) | |||
// | |||
| | |x1= <sqf notrim> | ||
5 + 3 // returns 8 | |||
-5 + -3 // returns -8 | |||
</sqf> | |||
| | |x2= <sqf> | ||
+ 2 // returns 2 | |||
+ -7 // returns -7 | |||
</sqf> | |||
| | |x3= <sqf> | ||
_arrayA = [1,2,3]; | |||
_arrayB = [3,4,5]; | |||
_arrayAB = _arrayA + _arrayB; // _arrayAB = [1,2,3,3,4,5] | |||
// _arrayA and _arrayB remain unchanged | |||
</sqf> | |||
| | |x4= <sqf>_result = "Hello" + " " + "there"; // "Hello there"</sqf> | ||
< | |x5= <sqf> | ||
_arrayA = [1,2,3]; | |||
_arrayB = + _arrayA; | |||
</ | _arrayB set [0, 99]; // _arrayA = [1,2,3], _arrayB = [99,2,3] | ||
</sqf> | |||
|x6= Shallow copy with {{hl|ARRAY + []}}: | |||
<sqf> | |||
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] | |||
</sqf> | |||
Deep copy with {{hl|+ ARRAY}}: | |||
<sqf> | |||
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] | |||
</sqf> | |||
[[ | |seealso= [[Operators]] [[pushBack]] [[append]] [[merge]] | ||
[[ | }} | ||
[[ | |||
[[ | |||
Latest revision as of 15:51, 8 November 2023
Description
- Description:
- Add two Numbers, concatenate two Arrays or two Strings, or create a copy of an Array or HashMap.
- Groups:
- MathArraysHashMapStrings
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:
- + array
- Parameters:
- array: Array
- Return Value:
- Array - a new instance of the provided array filled with same elements (deep copy)
Syntax 6
- Syntax:
- + hashMap
- Parameters:
- hashMap: HashMap
- Return Value:
- 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:
- Example 4:
- Example 5:
- Example 6:
- Shallow copy with ARRAY + []:
Deep copy with + ARRAY:
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
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Math
- Command Group: Arrays
- Command Group: HashMap
- Command Group: Strings