If 语句 不可以直接判断 数组吗?(不是元素,是数组变量)[已解决]
本帖最后由 魔导 于 2012-9-26 11:58 编辑小弟写了个 FUNC 返回值是一个数组 结果是数组可以用但是用IF直接判断则不成立啦
看了帮助里面写的是用 @error 来判断的
问题:IF不是用‘0’ 或 ‘非0’来判断的吗?
还是数组(不是元素,是数组变量)被认为是‘0’?
还请 前辈大大们指点指点.............感谢各位的真心帮助{:face (411):}
If IniReadSection (@ScriptDir&'\ini\日期.ini',"日期") Then MsgBox(0,0,0)
If a() Then MsgBox(0,0,1)
Func a()
Return IniReadSection (@ScriptDir&'\ini\日期.ini',"日期")
EndFunc
;两个都没成立 - -!
问题已解决 ,多谢发哥 、love5173、liongodmien元老 的指教................ 数组怎么可以用来作为判断语句呢,这样就行了吧:IsArray(IniReadSection (@ScriptDir&'\ini\日期.ini',"日期"))。没测试,楼主自己试试吧。 if 后面不能跟数组。
成立就是1,不成立就是0.这个也是根据函数自己的返回值来决定的。
实际判断时候就是判断的1或者0.
数组本身既不是1也不是0 本帖最后由 liongodmien 于 2012-9-26 10:42 编辑
凡是判断都是对true和false的判断,要么直接是一个标志值,要么是一个表达式产生的标志值,这样才是正确的编制方式。
AU3在这方面介定比较宽松,以0、false或“空”代表假(false),以其它作为真(true),楼主的代码在我这里的AU3版本:3.3.7.15中没有对应的配置文件时显示提示,有时则不提示。
数组元素有标志值,那么可以等于数组有标志值吗?
下面例子需要仔细思考下:
If IniReadSection (@ScriptDir&'\日期.ini',"日期") Then MsgBox(0, 1,IniReadSection (@ScriptDir&'\ini\日期.ini',"日期") & @error)
MsgBox(0, 11, IniReadSection (@ScriptDir&'\日期.ini',"日期") & @error)
If a() Then MsgBox(0,2,1)
Func a()
Return IniReadSection (@ScriptDir&'\日期.ini',"日期")
EndFunc
$a = "12345"
If $a Then MsgBox(0, 10, "ok")
$a = ""
If $a Then MsgBox(0, 20, "ok")
Dim $a =
If $a Then MsgBox(0, 10, "ok")
If $a Then MsgBox(0, 20, "ok")
#include <Array.au3>
$Ret = IniReadSection (@ScriptDir&'\ini\日期.ini',"日期")
If NOT @error
Then _arraydisplay($Ret) 数组本身既不是1也不是0
页:
[1]