fun(a,b) {
  c:=a+b
  MsgBox % VarName(a) "+" VarName(b) "=" c
  ;MsgBox, %a%+%b%=%c% ;希望这里能够输出a+b=3,而不是1+2=3
}

aa:=1
bb:=2
MsgBox % VarName(aa) "+" VarName(bb) "=" aa+bb
; fun(aa,bb)

VarName(var) {
  ex := Exception("", -1)
  FileReadLine line, % ex.File, % ex.Line
  static vars:={}
  if (!vars.HasKey(line)) {
    vars[line]:={}
    Count:=0
    While (pos:=RegExMatch(line, "i)(" . ex.What . "\s*\(([^\)]+)\))", m, pos?pos+StrLen(m1):1)) {
      Count++
      if (!vars[line].HasKey("matches"))
        vars[line]["matches"] := {}

      vars[line]["matches"][Count] := m2
    }
    vars[line]["max"] := Count
    vars[line]["count"] := 1
  } else
    vars[line]["count"]++

  varName := vars[line]["matches"][vars[line]["count"]]
  if (vars[line]["count"] = vars[line]["max"])
    vars:={}

  Return varName
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。