Dlaczego w AppleScript nie można zadeklarować odniesień do zmiennych lokalnych dla procedur obsługi?
Dlaczego nie możesz zadeklarować i używać odwołań do zmiennych, chyba że odnośna zmienna ma zasięg globalny? Proszę wyjaśnić pamięć środowiska wykonawczego lub strukturę obiektu, która prowadzi do następującego zjawiska:
Skrypt A kończy się niepowodzeniem:
on foo()
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
Skrypt B powiedzie się:
on run
set l to {0}
set lref to a reference to l
return item 1 of lref
end run
Skrypt C powiedzie się:
on foo()
global l
set l to {0}
set lref to a reference to l
return item 1 of lref
end foo
foo()
Zobacz też:Jak skutecznie budować listę w programie obsługi w języku AppleScript? iDlaczego AppleScript nie może uczynić firstValue hasha w odwołaniu do typu w tym kodzie testowym?