3

-- 我确定这是重复的 --

我在 O'reilly 的书中读到了这一点(:

虽然没有推理):

在一个简单的 AppleScript 文件中:

script implicitRunHandlerScript
end script      

run implicitRunHandlerScript
      --    why does this lead to a stack overflow?
4

2 回答 2

3

您发布的脚本包含一个名为 的子脚本implicitRunHandlerScript和一个处理程序,即“隐式run处理程序”。隐式run处理程序包含一条语句:

run implicitRunHandlerScript

子脚本继承其父脚本的处理程序。因此,您implicitRunHandlerScript继承了其父级的实现run处理程序。并且那个继承的隐式run处理程序调用 的run处理程序implicitRunHandlerScript,所以它递归地调用自己。

阅读AppleScript 语言指南中的在脚本对象中定义脚本对象继承

于 2012-12-29T22:41:01.997 回答
0

来自AppleScript:权威指南:

如果脚本对象没有显式运行处理程序,并且在其隐式运行处理程序中没有可执行语句,那么告诉它运行可能会产生不可预知的后果(这个事实几乎可以肯定是一个错误)。

于 2012-12-29T23:39:14.963 回答