我有一个大的经典的ASP应用程序,我必须维护,我反复发现自己被缺乏短路评估能力所阻挠.例如,VBScript不会让你摆脱:
if not isNull(Rs("myField")) and Rs("myField") <> 0 then ...
…因为如果Rs(“myField”)为空,则在第二个条件中会收到一个错误,将null与0进行比较.因此,我通常会这样做:
dim myField if isNull(Rs("myField")) then myField = 0 else myField = Rs("myField") end if if myField <> 0 then ...
显而易见,这是一个令人震惊的消息.围绕这个大代码库,我发现最好的解决方法是使用原始程序员写的函数,称为TernaryOp,它基本上以三进制类似于操作符的功能移植,但是我仍然使用一个临时变量需要一个更全面的语言.有没有更好的办法? VBScript中确实存在一些超级秘密的短路方式?