function - AutoHotkey - “return”和“break”之间不应该有区别吗?
问题描述
在下面的脚本中,我在一个循环中使用了“return”和“break”,但两者的效果相同。他们所做的是打破循环并继续脚本的其余部分。但是,返回后,脚本不应该继续,我的意思是,这就是 break 命令的用途,对吧?打破循环并继续执行脚本。返回后脚本不应继续:?:
这里的脚本确实有效:
F1 & i::
start := A_TickCount
Loop {
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, G:\Saves\AutoHotkey - Snipping Tool - Screenshots\Chrome - New Tab.png
totalTime := stop - start
stop := A_TickCount
if ErrorLevel = 0
{
break
}
else if totalTime > 3000
{
MsgBox, Something went wrong!
return
}
}
msgbox, This message box should only appear when the immage was found!
return
在这里我做了一个之前的脚本和“出错了!”之后的“return”的函数。似乎被解释为“中断”命令,因为在 msgbox 对话框之后“出了点问题!” 我得到下一个消息框。
F1 & i::
ImageSearchFunction("G:\Saves\AutoHotkey - Snipping Tool - Screenshots\Chrome - New Tab.png")
msgbox, This message box should only appear when the immage was found!
return
这里是函数本身:
ImageSearchFunction(ImagePath){
start := A_TickCount
Loop {
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, %ImagePath%
totalTime := stop - start
stop := A_TickCount
if ErrorLevel = 0
{
break
}
else if totalTime > 3000
{
MsgBox, Something went wrong!
return
}
}
}
解决方案
我在 AutoHotkey 上找到了解决方案。我必须在循环中使用“退出”而不是“返回”。这样就行了!
推荐阅读
- python - Lark:如何让字面量出现在树中
- dialogflow-es - Dialogflow Fulfillment URL 不发送任何数据
- html - 如何强制中心网格元素换行
- php - Laravel - 如何访问和操作 JSON 数组元素
- c++ - 枚举类的 static_cast 时间复杂度
- node.js - 使用 Node 和 React 时升级的这个 websocket 是什么?
- android - 嵌入式 Flutter 应用和原生 Android 中的 Firebase 身份验证
- android - 有什么方法可以使用 webView 在 android 中请求黑暗版本的网站?
- docker - 使用单个 ip 或 dnsname 向多节点 docker swarm 集群请求
- java - 如何从谷歌云端点获取远程 IP 地址?