cashiba 发表于 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函数,但是.....事实上是想当然了....
{:face (396):}

h20040606 发表于 2017-2-22 06:02:15

Local $aaa="ooqoqoqooq"
display("aaa")

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

cashiba 发表于 2017-2-22 13:41:18

回复 2# h20040606
猛一看有点绕.....
原来是把变量名当成字符串,变量名既代表字符串又代表变量,这中间用Eval来超度一下使之代表变量
这下会用EVal了,非常感谢!
{:face (88):}
页: [1]
查看完整版本: 变量获取变量名的问题....[已解决]