サーチ…


単純な配列の作成と初期化

イントロ

配列は、いくつかの値を保持するコンテナオブジェクトです。次の画像では、サイズが10、最初の要素が1、最後の要素が10の配列が表示されます。

ここに画像の説明を入力

Autohotkeyは、配列を定義して作成するいくつかの方法を提供します。

  • 配列:= []
  • Array:= Array()

N個の項目を持つ配列の作成と初期化

Array := [Item1, Item2, ..., ItemN]
Array := Array(Item1, Item2, ..., ItemN)

Autohotkeyでは、項目を持たない配列を持つことができます:

Array := [] ; works fine.

その後、要素を後で割り当てることができます。

Array[0] := 1

配列のサイズは、 length

msgbox % array.length()  ; shows 1 in this case.

配列が空でない場合、 MinIndexおよびMaxIndex / Lengthは、配列内で現在使用されている最小および最大のインデックスを返します。最低インデックスはほぼ常に1なので、MaxIndexは通常アイテムの数を返します。ただし、整数キーがない場合、MaxIndexは空の文字列を返し、Lengthは0を返します。

多次元配列の作成と初期化

次のように多次元配列を作成できます。

Array[1, 2] := 3

同時に作成して初期化することができ、内部配列の長さが同じである必要はありません。

Array := [[4,5,6],7,8]

このような配列は、配列の配列とも呼ばれます。

配列の塗りつぶし

; Assign an item:
Array[Index] := Value

; Insert one or more items at a given index:
Array.InsertAt(Index, Value, Value2, ...)

; Append one or more items:
Array.Push(Value, Value2, ...)

配列要素のインデックスの値は、負の整数(-1、0、1、2、3、4、...)でもかまいません。

配列からの要素の削除

; Remove an item:
RemovedValue := Array.RemoveAt(Index)

; Remove the last item:
RemovedValue := Array.Pop()

Array()関数をオーバーライドしてカスタムメソッドを追加する

AutoHotkeyはプロトタイプベースのプログラミング言語です 。つまり、組み込み関数/オブジェクトをいつでも上書きできます。この例は、カスタムClassオブジェクト内にメソッドを追加するためにArray()関数をオーバーライドする方法を示しています。

; Overrides Array()
Array(Args*) {
    Args.Base := _Array
    Return Args
}

; Custom Class Object with Methods
Class _Array {
    
    ; Reverses the order of the array.
    Reverse() {
        Reversed := []
        Loop % This.MaxIndex()
            Reversed.Push(This.Pop())
        Return Reversed
    }    
    
    ; Sums all Integers in Array
    Sum(Sum=0) {
        For Each, Value In This
            Sum += Value Is Integer ? Value : 0
        Return Sum
    }
}

; Arr == ["Hello, World!", 4, 3, 2, 1]
Arr := [1, 2, 3, 4, "Hello, World!"].Reverse() 
                    
; SumOfArray == 10
SumOfArray := Arr.Sum() 


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow