Zoeken…


Eenvoudige arrays maken en initialiseren

Intro

Een array is een containerobject dat een aantal waarden bevat. In de volgende afbeelding ziet u een array met grootte 10, het eerste element geïndexeerd 1 en het laatste element 10.

voer hier de afbeeldingsbeschrijving in

Autohotkey biedt een paar manieren om arrays te definiëren en te maken.

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

Arrays maken en initialiseren met N aantal items

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

In Autohotkey is het mogelijk om arrays zonder items te hebben:

Array := [] ; works fine.

En vervolgens kunnen er later elementen aan worden toegewezen:

Array[0] := 1

De matrixgrootte kan worden bepaald met behulp van een methode die length wordt genoemd:

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

Als de array niet leeg is, retourneren MinIndex en MaxIndex / Length de laagste en hoogste index die momenteel in de array wordt gebruikt. Omdat de laagste index bijna altijd 1 is, retourneert MaxIndex meestal het aantal items. Als er echter geen gehele sleutels zijn, retourneert MaxIndex een lege tekenreeks, terwijl Lengte 0 retourneert.

Multidimensionale arrays maken en initialiseren

U kunt als volgt een multidimensionale array maken:

Array[1, 2] := 3

U kunt tegelijkertijd creëren en initialiseren, en innerlijke arrays hoeven niet dezelfde lengte te hebben.

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

Dergelijke arrays worden ook wel arrays of arrays genoemd.

Een array vullen

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

De waarde van een index voor een matrixelement kan ook een negatief geheel getal zijn (-1, 0, 1, 2, 3, 4, ...)

Elementen verwijderen uit een array

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

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

Aangepaste methoden toevoegen door de functie Array () te overschrijven

AutoHotkey is een op prototype gebaseerde programmeertaal , wat betekent dat u elke ingebouwde functie / object op elk gewenst moment kunt overschrijven. In dit voorbeeld wordt de functie Array () overschreven om methoden toe te voegen binnen een aangepast klasseobject.

; 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow