配列は角括弧でくくることで認識される。配列は空の配列[]を代入するか、配列の中に複数の値をカンマで区切って入れることで定義できる。値は数字(注:number)、文字列(注:string)、真偽値(注:boolean)、オブジェクト(注:object)、その他なんでも、あるいはいっぺんに全部でも良い。
1 2 3 4 | _array = []; //空の配列 _array = [1,2,3,4,5,6,7,8,9]; //数字の配列 _array = [ "Bob" , "Peter" , "John" ]; //文字列の配列 _array = [player,_var, true ,var,56, "ok" ,_this]; //混合の配列 |
1 2 3 4 5 6 | _array = []; _result = count _array; //_resultは0 _array = [ "hello" ]; _result = count _array; //_resultは1 _array = [1,2,3]; _result = count _array; //_resultは3 |
1 | _array = [[1,2,3],[5,6,7]]; //_arrayは2つの配列[1,2,3]と[5,6,7]を内包 |
1 2 3 | _array = [ "orange" , "blue" , "red" , "green" ]; _result = _array select 1; //_resultは"blue" _result = _array select ((count _array) - 1); //_resultは"green"、最後の値 |
1 2 | _array = [[[1,2],[3,4]],[[5,6,7],[8,9]]]; _result = ((_array select 1) select 0) select 2; //_resultは7 |
実行されたcodeがtrueになったら、その値はカウントされ、それ以外はカウントされない。例を挙げるとして、次の配列に"John"が何回出てくるか数えてみよう。
1 2 | _array = [ "John" , "Samantha" , "Billy" , "Archer" , "John" , "John" , "Peter" , "Casey" ]; _result = {_x == "John" } count _array; //_resultは3 |
1 2 3 | //間違い _array = [ "John" ,23, "Samantha" ,25, "Billy" ,67, "Archer" ,45, "John" ,23, "John" ,32]; _result = {_x == "John" } count _array; //エラー |
1 2 3 | //正しい _array = [ "John" ,23, "Samantha" ,25, "Billy" ,67, "Archer" ,45, "John" ,23, "John" ,32]; _result = {typeName _x == "STRING" && {_x == "John" }} count _array; //エラーにならない |
1 2 3 4 5 | _array = [1, "two" ,3, "four" ,1, "two" ,3, "four" ]; _result = "four" in _array; //_resultはtrue; _result = 4 in _array; //_resultはfalse; _result = _array find "three" ; //_resultは-1 _result = _array find 3; //_resultは2 |
1 2 3 4 5 6 7 | _array = [ "one" , "two" , "three" ]; _result = "TWO" in _array; //_resultはfalse _result = _array find "TWO" ; //_resultは-1 /*訳注:以下のスクリプトは現在のバージョンでは正しくありません*/ _array = [[1,2,3],[4,5,6]]; _result = [1,2,3] in _array; //_resultはfalse _result = _array find [1,2,3]; //_resultは-1 |
(訳注:Arma 3 1.26から、入れ子構造の配列に関しては機能するようになりました。)その1は以上。その2は配列の操作と改変について見てみよう。
Enjoy,
KK
追記: このポストを投稿してから、Arma 3には多くの配列関連の命令が追加された。BIKIの配列関連のスクリプト一覧を確認しよう。思いつくだけで…pushBack、append、reverse、sort、select(新構文)、deleteAt、deleteRange。また、配列 + 配列の計算も大幅に早くなった。
KK's blog – ArmA Scripting Tutorials: Arrays (Part 1) by Killzone Kid
Translated by POLPOX
Translated by POLPOX
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。