Ricerca…


Creazione e inizializzazione di matrici semplici

Intro

Un array è un oggetto contenitore che contiene un numero di valori. Nell'immagine seguente è possibile vedere una matrice con dimensione 10, il primo elemento indicizzato 1 e l'ultimo elemento 10.

inserisci la descrizione dell'immagine qui

Autohotkey offre alcuni modi per definire e creare array.

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

Creazione e inizializzazione di array con N numero di elementi

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

In Autohotkey, è possibile avere array senza elementi:

Array := [] ; works fine.

E gli elementi possono poi essere assegnati ad esso:

Array[0] := 1

La dimensione della matrice può essere determinata utilizzando un metodo chiamato length :

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

Se l'array non è vuoto, MinIndex e MaxIndex / Length restituiscono l'indice più basso e più alto attualmente in uso nell'array. Poiché l'indice più basso è quasi sempre 1, MaxIndex di solito restituisce il numero di articoli. Tuttavia, se non ci sono chiavi intere, MaxIndex restituisce una stringa vuota mentre Length restituisce 0.

Creazione e inizializzazione di array multidimensionali

È possibile creare un array multidimensionale come segue:

Array[1, 2] := 3

È possibile creare e inizializzare allo stesso tempo e gli array interni non devono necessariamente avere la stessa lunghezza.

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

Array come questo sono anche chiamati array di array.

Riempimento di un array

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

Il valore di un indice per un elemento di matrice può anche essere un numero intero negativo (-1, 0, 1, 2, 3, 4, ...)

Rimozione di elementi da un array

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

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

Aggiunta di metodi personalizzati sostituendo la funzione Array ()

AutoHotkey è un linguaggio di programmazione basato su prototipi , il che significa che puoi sovrascrivere qualsiasi funzione / oggetto incorporato in qualsiasi momento. Questo esempio dimostra l'override della funzione Array () per aggiungere metodi all'interno di un oggetto classe personalizzato.

; 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow