AutoHotkey
Tablice
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.
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()