AutoHotkey
Search…
⌃K
🚄

Diziler

AutoHotkey ile dizi işlemleri

✨ Tanımlama

  • Dizilerin tanımlanması <name> := [<var>, <var2> ...] şeklinde yapılır
  • Dizilerin ilk elemanı 1'den başlar
  • Dizi elemanlarına <array>[<index>] şeklinde erişilir

🔤 String Dizileri

array := ["one", "two", "three"]
; Iterate from 1 to the end of the array:
Loop % array.Length()
MsgBox % array[A_Index]
; Enumerate the array's contents:
For index, value in array
MsgBox % "Item " index " is '" value "'"

🔍 Eleman Varlığı Kontrolü

  • 😅 AHK içerisinde diziler için hazır gelen bir varlık kontrolü yok
  • 🤹 Yeni bir HasVal fonksiyonu oluşturmamız gerekmekte
HasVal(haystack, needle) {
for index, value in haystack
if (value = needle)
return index
if !(IsObject(haystack))
throw Exception("Bad haystack!", -1, haystack)
return 0
}
arr := ["a", "b", "", "d"]
MsgBox % HasVal(arr, "a") "`n" ; -> 1
. HasVal(arr, "c") "`n" ; -> 0
. HasVal(arr, "d") ; -> 4
arr := {keyA: "A", keyB: "B"}
MsgBox % HasVal(arr, "B") "`n" ; -> keyB
. HasVal(arr, "C") ; -> 0
arr := {keyA: "A", 1: 0, keyC: "C"}
MsgBox % HasVal(arr, 0) "`n" ; -> 1
. HasVal(arr, "C") "`n" ; -> keyC
str := "A"
MsgBox % HasVal(str, "A") ; -> fails -1
; İçerisinde yoksa ekleme
If !HasVal(IDlist, myID) {
IDlist.Push(myID)
}
‍🧙‍♂ Detaylı bilgi için 👨‍💻 AHK_Scripts alanına bakabilirsin.

🧐 Dizi Kontrolü

  • Elemanın dizi olup olmadığını uzunluk özelliği ile kontrol ederiz
  • Dizi değilse uzunluk özelliği null değerini döndürecektir
names := ["yunus", "emre"]
name_count := names.Length()
if name_count
MsgBox Dizi
full_name := "yunus emre"
full_name_count := full_name .Length()
if !full_name_count
MsgBox Dizi değil

➕ Dizileri Birleştirme

  • Dizileri birleştirmek için bir önceki dizinin elemanını çıkarırız
  • Diğer dizinin sonuna ekleriz
array1 := [1,2,3,4,5]
array2 := [2,4,6]
loop % array2.length()
array1.push(array2.pop())
‍🧙‍♂ Detaylı bilgi için 👪 merging 2 array alanına bakabilirsin.