You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AutoHotKey中如何检查变量是否已赋值及是否存在?

在AutoHotKey中检查变量是否已赋值/存在的方法

一、检查普通变量是否已赋值

AutoHotKey v2

直接使用内置函数VarIsSet(),返回布尔值:true表示变量已被赋值(哪怕值为空),false表示变量未定义:

if VarIsSet(myVar) {
    ; 变量已赋值,执行对应逻辑
} else {
    ; 变量未定义,执行兜底处理
}

AutoHotKey v1

使用VarExist()函数,传入变量名字符串判断变量是否存在:

if VarExist("myVar") {
    ; 变量已存在
} else {
    ; 变量未定义
}

注意:若变量被赋值为空字符串"",VarExist()仍返回true,它仅判断变量是否被创建,不关心值是否为空。

二、检查对象(Object)中的键是否存在

针对你提到的「包含36个字母数字键的对象」场景,有两种通用方法:

方法1:key in obj语法(v1/v2通用)

直接判断键是否属于对象的键集合:

; 示例:定义包含字母数字键的对象
myObj := {a: "valA", b: "valB", 0: "val0", 1: "val1"} ; 省略其余32个键
selectedKey := "a" ; 假设选中的目标键

if selectedKey in myObj {
    targetVar := myObj[selectedKey] ; 键存在,赋值对应值
} else {
    targetVar := "" ; 键不存在,设置默认值或其他处理
}

方法2:Has()方法(仅AHK v2)

v2的对象内置Has()方法,专门用于检查键是否存在:

myObj := {a: "valA", b: "valB", 0: "val0", 1: "val1"}
selectedKey := "z"

if myObj.Has(selectedKey) {
    targetVar := myObj[selectedKey]
} else {
    MsgBox("选中的键不存在")
}

内容的提问来源于stack exchange,提问作者Speedy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:12:11