Suppongo che tu sia preoccupato della velocità di iterazione. L'iterazione sarebbe un tempo di ordine -n O (n).
In AppleScript, puoi usare un record di record invece di un elenco di record, ma credo che la classe della chiave debba essere un identificatore, non un intero come nel tuo esempio.
Ecco un link a qualcuno con una domanda simile:
Emulazione di matrici associative in AppleScript
La risposta di Lauri Ranta è di usare lo strumento da riga di comando chiamato "awk".
La soluzione con cui mi sono divertito è stata quella di creare un'app di sfondo senza volto che sarebbe stata chiamata "Agente" che AppleScript potrebbe utilizzare per utilizzare le sue strutture dati come un array associativo (noto anche come dizionario o mappatura. )
Non ho ottenuto la mia soluzione. È solo un'idea, ma potresti usare la risposta di Lauri, di solito sa di cosa sta parlando.
Dato che conosco un po 'Pyton, e poiché Pyton viene fornito con OS X, preinstallato nella cartella System, prenderei in considerazione l'utilizzo di Python.
L'ho provato di nuovo in "puro AppleScript" con il seguente codice di cui non sono veramente soddisfatto:
set theRecords to {fooKey:{key:"fooKey", value:"fooValue"}, barKey:{key:"barKey", value:"barValue"}}
try
set theRecord to get barKey of theRecords
display dialog (key of theRecord & ":" & value of theRecord)
on error errorMessage number errorNumber
if errorNumber is not equal to -128 then
display dialog "No match"
end if
end try
Puoi combinare script di shell e AppleScript:
-- in AppleScript, you can call a shell script
do shell script "<enter your shell script here>"
Oppure puoi chiamare un AppleScript da uno script di shell con lo strumento da riga di comando chiamato "osascript".