Suche…


Einfache Arrays erstellen und initialisieren

Intro

Ein Array ist ein Containerobjekt, das mehrere Werte enthält. Im folgenden Bild sehen Sie ein Array der Größe 10, das erste Element 1 und das letzte Element 10.

Geben Sie hier die Bildbeschreibung ein

Autohotkey bietet einige Möglichkeiten zum Definieren und Erstellen von Arrays.

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

Erstellen und Initialisieren von Arrays mit N Anzahl der Elemente

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

In Autohotkey ist es möglich, Arrays ohne Elemente zu haben:

Array := [] ; works fine.

Und Elemente können dann später zugewiesen werden:

Array[0] := 1

Die Arraygröße kann mit einer Methode namens length :

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

Wenn das Array nicht leer ist, geben MinIndex und MaxIndex / Length den niedrigsten und höchsten Index zurück, der aktuell im Array verwendet wird. Da der niedrigste Index fast immer 1 ist, gibt MaxIndex normalerweise die Anzahl der Elemente zurück. Wenn jedoch keine Ganzzahlschlüssel vorhanden sind, gibt MaxIndex eine leere Zeichenfolge zurück, während Length 0 zurückgibt.

Erstellen und Initialisieren von mehrdimensionalen Arrays

Sie können ein mehrdimensionales Array wie folgt erstellen:

Array[1, 2] := 3

Sie können gleichzeitig erstellen und initialisieren, und innere Arrays müssen nicht gleich lang sein.

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

Arrays wie dieses werden auch Arrays von Arrays genannt.

Array füllen

; 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, ...)

Der Wert eines Index für ein Array-Element kann auch eine negative ganze Zahl sein (-1, 0, 1, 2, 3, 4, ...).

Elemente aus einem Array entfernen

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

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

Hinzufügen benutzerdefinierter Methoden durch Überschreiben der Array () - Funktion

AutoHotkey ist eine auf Prototypen basierende Programmiersprache , das heißt, Sie können alle eingebauten Funktionen / Objekte jederzeit überschreiben. In diesem Beispiel wird das Überschreiben der Array () - Funktion veranschaulicht, um Methoden innerhalb eines benutzerdefinierten Klassenobjekts hinzuzufügen.

; 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow