我已经开发 AppleScript 几个月了,代码达到了大约 6,000 行。
它的功能是与 Automator 一起运行,它从剪贴板接收内容,这些内容是从电子表格中复制的行。然后,它将这些内容写入各种全局变量。
全局变量在主函数中贯穿和扩展逻辑树进行修改,最后用输出函数写回剪贴板:
global SomeGlobalVariables
on OutputFunction()
#write global variables to clipboard
end OutputFunction
on InputFunction(input, parameters)
#write clipboard to global variables
end InputFunction
#main function
on run {input, parameters}
InputFunction(input, parameters)
if globalVariable1 = "Test" then
#Code with many IF-Statements modifying global variables
else if globalVariable1 = "Test2" then
#Code with many IF-Statements modifying global variables
#if globalVariable1 = "abc" then beep
#...
#Code with many IF-Statements modifying global variables
#...
#...
end if
end run
现在,我遇到了一个非常奇特的问题:
一旦我在主函数中超过一定数量的 IF 语句,代码在我到达结束运行之前会抛出一个错误。
例如,如果 globalVariable1 是“Test”,那么代码一开始就可以正常工作。但是当我稍后通过添加一些随机的 IF 语句来修改“Test2”部分时,例如
if globalVariable1 = "abc" then beep
我在结束运行之前收到一条错误消息。即使“Test2”部分永远不会被处理,因为 globalVariable1 始终保持“Test”。
我收到的错误消息相当随机,具体取决于我在代码中放置了多少随机 IF 语句。大多数情况下,他们声明无法将某些内容转换为数字/文本/…</p>
我以前从未听说过这样的事情,但是我的代码中的 IF 语句是否存在限制或可以解释该行为的明显缺陷?
谢谢!