AutoHotkey
arrayer
Sök…
Skapa och initiera enkla matriser
Intro
En matris är ett containerobjekt som innehåller ett antal värden. I följande bild kan du se en matris med storlek 10, det första elementet indexeras 1 och det sista elementet 10.
Autohotkey erbjuder några sätt att definiera och skapa matriser.
- Array: = []
- Array: = Array ()
Skapa och initiera matriser med N-antal objekt
Array := [Item1, Item2, ..., ItemN]
Array := Array(Item1, Item2, ..., ItemN)
I Autohotkey är det möjligt att ha matriser utan föremål:
Array := [] ; works fine.
Och element kan sedan senare tilldelas det:
Array[0] := 1
Arraystorlek kan bestämmas med hjälp av en metod som kallas length
:
msgbox % array.length() ; shows 1 in this case.
Om matrisen inte är tom, returnerar MinIndex och MaxIndex / Length det lägsta och högsta indexet som för närvarande används i matrisen. Eftersom det lägsta indexet är nästan alltid 1 returnerar MaxIndex vanligtvis antalet objekt. Om det inte finns några heltalsknappar returnerar MaxIndex en tom sträng medan längd returnerar 0.
Skapa och initiera multidimensionella matriser
Du kan skapa en multidimensionell matris enligt följande:
Array[1, 2] := 3
Du kan skapa och initialisera samtidigt, och inre matriser behöver inte vara av samma längd.
Array := [[4,5,6],7,8]
Arrayer som detta kallas också matriser av matriser.
Fylla på en matris
; 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, ...)
Värdet på ett index för ett arrayelement kan också vara ett negativt heltal (-1, 0, 1, 2, 3, 4, ...)
Ta bort element från en matris
; Remove an item:
RemovedValue := Array.RemoveAt(Index)
; Remove the last item:
RemovedValue := Array.Pop()
Lägga till anpassade metoder genom att åsidosätta Array () -funktionen
AutoHotkey är ett prototypbaserat programmeringsspråk , vilket innebär att du kan åsidosätta alla inbyggda funktioner / objekt när som helst. Detta exempel demonstrerar åsidosättande Array () -funktion för att lägga till metoder i ett anpassat klassobjekt.
; 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()