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