Я проверил это в своем коде, и в настоящее время он работает. Может быть, не подходит для ситуации каждого, хотя.

я есть большое классическое приложение ASP, которое я должен поддерживать, и я неоднократно оказывался пораженным отсутствием возможности оценки короткого замыкания. Например, VBScript не позволит вам сойти с рук:

if not isNull(Rs("myField")) and Rs("myField") <> 0 then
...

... потому что если Rs ("myField") равен нулю, вы получите ошибку во втором условии, сравнивая ноль с 0. Поэтому я обычно заканчиваю тем, что делаю это вместо этого:

dim myField
if isNull(Rs("myField")) then 
    myField = 0
else
    myField = Rs("myField")
end if

if myField <> 0 then
...

Очевидно, многословие довольно ужасно. Оглядываясь вокруг этой большой базы кода, я нашел лучший обходной путь - использовать функцию, написанную оригинальным программистом, под названием TernaryOp, которая в основном прививает тернарную функциональность, похожую на оператор, но я все еще застрял, используя временную переменную, которая не быть необходимым на более полнофункциональном языке. Есть ли способ лучше? Какой-то сверхсекретный способ, которым короткое замыкание действительно существует в VBScript?

Ответы на вопрос(2)

Ваш ответ на вопрос