a hash b: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
No edit summary |
||
Line 9: | Line 9: | ||
|descr= Selects an element from an [[Array | array]], same as [[select]] command for arrays, but has [[Order_of_Precedence | higher precedence]] | |descr= Selects an element from an [[Array | array]], same as [[select]] command for arrays, but has [[Order_of_Precedence | higher precedence]] | ||
{{Feature | Informative | '''#''' has higher precedence than all binary operators, but it has lower precedence than unary operators (see Example 3)}} | |||
|s1= array [[a_hash_b|#]] index | |s1= array [[a_hash_b|#]] index | ||
Line 20: | Line 20: | ||
|x1= <code>[1,2,3,4] [[a_hash_b|#]] 2; {{cc|result is 3}}</code> | |x1= <code>[1,2,3,4] [[a_hash_b|#]] 2; {{cc|result is 3}}</code> | ||
|x2= < | |x2= <sqf>getPosASL player # 2; // result is Z component of player's position</sqf> | ||
|x3= <sqf>//'getPosASL' is unary; '#' and '+' are binary; precedence is: 'getPosASL' > '#' > '+' | |||
getPosASL player # 2 + 1; // equivalent to (getPosASL player # 2) + 1, not (getPosASL player)#(2+1)</sqf> | |||
|seealso= [[select]] [[selectRandom]] [[selectRandomWeighted]] [[set]] [[resize]] [[reverse]] [[in]] [[find]] [[toArray]] [[toString]] [[forEach]] [[count]] [[deleteAt]] [[deleteRange]] [[append]] [[sort]] [[param]] [[params]] [[splitString]] [[joinString]] [[pushBack]] [[pushBackUnique]] [[apply]] | |seealso= [[select]] [[selectRandom]] [[selectRandomWeighted]] [[set]] [[resize]] [[reverse]] [[in]] [[find]] [[toArray]] [[toString]] [[forEach]] [[count]] [[deleteAt]] [[deleteRange]] [[append]] [[sort]] [[param]] [[params]] [[splitString]] [[joinString]] [[pushBack]] [[pushBackUnique]] [[apply]] |
Revision as of 08:51, 22 March 2022
Description
- Description:
- Selects an element from an array, same as select command for arrays, but has higher precedence
- Groups:
- Variables
Syntax
Examples
- Example 1:
[1,2,3,4] # 2; // result is 3
- Example 2:
- Example 3:
Additional Information
- See also:
- select selectRandom selectRandomWeighted set resize reverse in find toArray toString forEach count deleteAt deleteRange append sort param params splitString joinString pushBack pushBackUnique apply
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
- Posted on April 25, 2018 - 00:51 (UTC)
- KC Grimes
-
Although not alternative syntax, the below notations work as expected:
["A","B","C"] # 1; //B ["A","B","C"] #1; //B ["A","B","C"]#1; //B ["A","B",["C","D"]]#2#0; //C
- Posted on May 3, 2019 - 15:41 (UTC)
- 7erra
-
Here is an example of what higher precedence means:
[1,2,3,4] select 2/2; // divides 2 with 2, therefore selects second element = 2 [1,2,3,4] select (2/2); // same result with brackets [1,2,3,4] # 2/2; // selects third element, then divides by 2 = 1.5 ([1,2,3,4] # 2)/2; // same result with brackets
This operator can not be used in conjunction with the #define preprocessor.
#define SEL_ERR [0,1,2]#0 //error #define SEL_NOERR [0,1,2] select 0 //works
- Posted on April 2, 2021 - 16:18 (UTC)
- fett_li
-
Beware new-lines when using this operator. I suspect the preprocessor to fail. The following code will not compile without throwing an error:
[0] # 0;