【发布时间】:2008-09-12 17:42:05
【问题描述】:
我有一个必须维护的大型经典 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中确实存在短路的一些超级秘密方式?
【问题讨论】:
标签: asp-classic vbscript