Как UBound / LBound поддерживает необязательный параметр измерения в VBScript? - PullRequest
0 голосов
/ 11 февраля 2019

Я изучал основы VBScript, и мне любопытно, как UBound и LBound могут принимать один или два аргумента.Я читал, что VBScript не поддерживает ни необязательные параметры, ни перегруженные функции, так как эти функции могут принимать необязательный второй параметр?

На этой странице в Документах разработчика Rhino обсуждается обходной путь для реализациинеобязательные параметры в VBscript, но не похоже, что так реализованы UBound и LBound, так как вызывающим сторонам не нужно передавать массив параметров.

1 Ответ

0 голосов
/ 12 февраля 2019

VBScript - это совместимость с типизированным VBA (т. Е. Не dim как-либо).

Коды ошибок VBScript взяты из Altair Basic, написанного Биллом Гейтсом / Полом Алленом миллион лет назад.Так что это опирается на прошлое.См. https://blogs.msdn.microsoft.com/ericlippert/2004/09/09/thirty-years-of-backwards-compatibility/

Возьмите этот пример

InStr([start, ]string1, string2[, compare])

Он сообщает, является ли первый параметр числом not (сопровождаемым двумя строками), чтобы определить, передали вы его или нет.Но вы не можете использовать это, чтобы обобщить поведение на других вещах, поскольку это должно поддерживаться в данном конкретном случае для совместимости с VBA (и более ранними версиями BASICS).

Итак, ваше утверждение Я прочитал, что VBScript не поддерживает нинеобязательные параметры или перегруженные функции, так как эти функции могут принимать необязательный второй параметр? равен true, кроме случаев, когда он не .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...