Warum können Sie in AppleScript keine Referenzen auf Variablen deklarieren, die für Handler lokal sind?
Warum können Sie keine Referenzen auf Variablen deklarieren und verwenden, es sei denn, die referenzierte Variable ist global gültig? Bitte erläutern Sie den Laufzeitspeicher oder die Objektstruktur, die zu folgendem Phänomen führen:
Skript A schlägt fehl:
on foo()
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
Skript B ist erfolgreich:
on run
set l to {0}
set lref to a reference to l
return item 1 of lref
end run
Skript C ist erfolgreich:
on foo()
global l
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
Siehe auch:Wie kann eine Liste in einem Handler in AppleScript effizient erstellt werden? undWarum kann AppleScript FirstValue von Hash in diesem Testcode nicht zur Typreferenz machen?