我有一个必须维护的大型经典 ASP 应用程序,并且我多次发现自己因缺乏短路评估能力而受挫。例如,VBScript 不会让你逃脱:
if not isNull(Rs("myField")) and Rs("myField") <> 0 then
...
...因为如果 Rs("myField") 为 null,则在第二个条件中将 null 与 0 进行比较时会出现错误。所以我通常会这样做:
dim myField
if isNull(Rs("myField")) then
myField = 0
else
myField = Rs("myField")
end if
if myField <> 0 then
...
显然,冗长得令人震惊。环顾这个庞大的代码库,我发现最好的解决方法是使用原始程序员编写的函数,称为 TernaryOp,它基本上移植了类似三元运算符的功能,但我仍然坚持使用一个临时变量,该变量不会对于功能更齐全的语言来说是必要的。有没有更好的办法? VBScript 中确实存在某种超级秘密的短路方式吗?
嵌套 IF(只是稍微简洁一些):
if not isNull(Rs("myField")) Then
if Rs("myField") <> 0 then
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)