Szukaj…


Tworzenie i inicjowanie prostych tablic

Wprowadzenie

Tablica jest obiektem kontenerowym, który zawiera wiele wartości. Na poniższym obrazku widać tablicę o rozmiarze 10, pierwszy element indeksowany 1, a ostatni element 10.

wprowadź opis zdjęcia tutaj

Autohotkey oferuje kilka sposobów definiowania i tworzenia tablic.

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

Tworzenie i inicjowanie tablic z liczbą N elementów

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

W programie Autohotkey można mieć tablice bez elementów:

Array := [] ; works fine.

I elementy mogą być później przypisane do niego:

Array[0] := 1

Rozmiar tablicy można określić za pomocą metody o nazwie length :

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

Jeśli tablica nie jest pusta, MinIndex i MaxIndex / Length zwracają najniższy i najwyższy indeks aktualnie używany w tablicy. Ponieważ najniższy indeks prawie zawsze wynosi 1, MaxIndex zwykle zwraca liczbę elementów. Jeśli jednak nie ma kluczy liczb całkowitych, MaxIndex zwraca pusty ciąg, a Length zwraca 0.

Tworzenie i inicjowanie tablic wielowymiarowych

Możesz utworzyć tablicę wielowymiarową w następujący sposób:

Array[1, 2] := 3

Możesz tworzyć i inicjalizować w tym samym czasie, a wewnętrzne tablice nie muszą być tej samej długości.

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

Takie tablice nazywane są również tablicami tablic.

Wypełnianie tablicy

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

Wartość indeksu elementu tablicy może być również ujemną liczbą całkowitą (-1, 0, 1, 2, 3, 4, ...)

Usuwanie elementów z tablicy

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

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

Dodawanie niestandardowych metod przez przesłanianie funkcji Array ()

AutoHotkey jest językiem programowania opartym na prototypach , co oznacza, że możesz w każdej chwili zastąpić dowolną wbudowaną funkcję / obiekt. W tym przykładzie pokazano przesłonięcie funkcji Array () w celu dodania metod w niestandardowym obiekcie klasy.

; 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow