找回密码
 加入
搜索
查看: 2053|回复: 2

[系统综合] 变量获取变量名的问题....[已解决]

[复制链接]
发表于 2017-2-21 23:09:08 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2017-2-22 14:08 编辑

近日测试代码时,想看看几个变量经过处理后的值是什么.以Consolewrite示例说明吧.
Local $sString1 = "这是写到"
ConsoleWrite($sString1 & @CRLF)
Local $sString2 = "控制台的"
ConsoleWrite($sString2 & @CRLF)
Local $sString3 = "示例."
ConsoleWrite($sString3 & @CRLF)
返回如下:
这是写到
控制台的
示例.
返回的结果只是结果,不能直观的看出哪个返回值对应哪个变量
希望是下面的返回结果:
Local $sString1 = "这是写到"
ConsoleWrite("$sString1="&$sString1 & @CRLF)
Local $sString2 = "控制台的"
ConsoleWrite("$sString2="&$sString2 & @CRLF)
Local $sString3 = "示例."
ConsoleWrite("$sString3="&$sString3 & @CRLF)
返回如下:
$sString1=这是写到
$sString2=控制台的
$sString3=示例.
这样的话每个ConsoleWrite语句都要写成:ConsoleWrite("变量某实例名="&变量某实例& @CRLF)的形式.
假如有某函数X可以通过变量返回变量名,就可以抽象化写成:ConsoleWrite(X(变量)& "=" &变量& @CRLF)
于是就归结到如何通过变量返回变量名的问题上来了
首先想到的就是Eval函数,但是.....事实上是想当然了....
发表于 2017-2-22 06:02:15 | 显示全部楼层
Local $aaa="ooqoqoqooq"
display("aaa")

Func display($astring)
ConsoleWrite($astring & "=" & Eval($astring)& @CRLF)
EndFunc

评分

参与人数 1金钱 +10 收起 理由
cashiba + 10

查看全部评分

 楼主| 发表于 2017-2-22 13:41:18 | 显示全部楼层
回复 2# h20040606
猛一看有点绕.....
原来是把变量名当成字符串,变量名既代表字符串又代表变量,这中间用Eval来超度一下使之代表变量
这下会用EVal了,非常感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-24 22:22 , Processed in 0.093364 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表