
Struktury danych w AppleScript.
Praca z listami.
Na wstępie musisz wiedzieć, że w AppleScript, w odróżnieniu od innych języków listy nie są indeksowane od zera, tylko rozpoczynają swoją numerację od numeru 1.
Listy są tworzone poprzez podanie elementów w nawiasach klamrowych. Pobranie całej listy wykonujemy komendą get.
1 2 |
set pracownicy to {“Nowak”, “Kowalski”} get pracownicy |

Pobranie elementów listy
Zmiana elementów na liście odbywa się za pomocą komendy set:
1 2 3 |
set pracownicy to {“Nowak”, “Kowalski”} set item 1 of pracownicy to “Nowak Jan” get pracownicy |

Edycja pierwszego elementu listy
Pobranie elementu z listy jest realizowane komendą get:
1 2 |
set pracownicy to {“Nowak”, “Kowalski”} get item 2 of pracownicy |
Do naszej listy możemy w bardzo prosty sposób dodawać elementy. Elementy można wstawić na początek listy oraz na koniec. Wstawianie realizujemy komendą copy:
1 2 3 4 |
set pracownicy to {“Nowak”, “Kowalski”} copy “Lewandowski” to the beginning of pracownicy copy “Błaszczyk” to the end of pracownicy get pracownicy |

Teraz, skoro mamy naszą listę gotową, możemy wykonywać różne operacje na niej.
W celu pobrania ilości elementów listy używamy komendy count:
1 2 3 4 |
set pracownicy to {“Nowak”, “Kowalski”} copy “Lewandowski” to the beginning of pracownicy copy “Błaszczyk” to the end of pracownicy count pracownicy |
Z naszej listy możemy pobrać zakres elementów, realizujemy taką operację komendą thru:
1 2 3 4 |
set pracownicy to {”Nowak“, ”Kowalski“} copy ”Lewandowski“ to the beginning of pracownicy copy ”Błaszczyk" to the end of pracownicy get items 2 thru 4 of pracownicy |
Na koniec list, mam dla Ciebie ciekawostkę do wykorzystania. Czasami generuję jaką treść, w której potrzebuję wykorzystać losowe elementy imion, nazwisk, rodzai rzeczy ze słownika. Może być do tego pomocne właśnie pobieranie losowych elementów listy. W AppleScript pobranie losowego elementu z listy realizujemy komendą some:
1 2 3 4 |
set pracownicy to {“Nowak”, “Kowalski”} copy “Lewandowski” to the beginning of pracownicy copy “Błaszczyk” to the end of pracownicy get get some item of pracownicy |
Uruchamiając skrypt kilkukrotnie, zauważysz, że odpowiedz jest zawsze inna.
Praca z rekordami.
Rekordy są nienumerowanymi listami par klucz – wartość. Lista nienumerowana oznacza, że nie możesz pobrać określonego elementu, jak to miało miejsce w przypadku list. Nie można wykonać komendy get item 2, ponieważ nie ma czegoś takiego. Do pobrania wartości rekordu potrzebujesz znać jego klucz.
Jeśli programujesz w innych językach, to rekordy są podobne do dictionary lub hash.
W rekordach klucze są unikalne i nie możesz zdefiniować drugiego rekordu o takim samym kluczu.
Do naszej listy pracowników dodam teraz ich stanowiska. Klucz od wartości oddzielamy dwukropkiem :, a pary przecinkiem.
1 2 |
set pracownicy to {Nowak:“Kierownik”, Kowalski:“Kowal”} get Nowak of pracownicy |
Zwróć uwagę, że klucz nie jest podawany w cudzysłowach.