Добрый день! Часто, просматривая чьи-нибудь коды ВБА, встречаю написания функции с добавлением всяких суффиксов, как например в функции LCase встретил добавление "$", что получилось: LCase$. Что это означает, и где можно при них почитать? Так же немного неясно, зачем подобные символы оставлять в наименованиях переменных, что тоже встречалось...?
Добрый день! Часто, просматривая чьи-нибудь коды ВБА, встречаю написания функции с добавлением всяких суффиксов, как например в функции LCase встретил добавление "$", что получилось: LCase$. Что это означает, и где можно при них почитать? Так же немного неясно, зачем подобные символы оставлять в наименованиях переменных, что тоже встречалось...?Roman777
Много чего не знаю!!!!
Сообщение отредактировал Roman777 - Пятница, 20.03.2015, 12:20
эти "суффиксы" указывают тип данных, возвращаемых функцией (для переменных то же самое). например, по умолчанию LCase вернет тип Variant (подтип String), а LCase$ сразу вернет тип String. (см. "Типы данных VB")
эти "суффиксы" указывают тип данных, возвращаемых функцией (для переменных то же самое). например, по умолчанию LCase вернет тип Variant (подтип String), а LCase$ сразу вернет тип String. (см. "Типы данных VB")KSV
Николай, а есть ли другая аргументация, кроме ссылки на советы Уокенбаха.
Я предпочитаю при объявлении переменных тип указывать "суффиксом". Как минимум меньше нужно набирать букв и легче читается код.
Могу только предположить, что может отсутствовать совместимость между диалектами VBA (BASIC) либо она (несовместимость) может возникнуть в будущем. Вряд ли это влияет на скорость выполнения кода.
Николай, а есть ли другая аргументация, кроме ссылки на советы Уокенбаха.
Я предпочитаю при объявлении переменных тип указывать "суффиксом". Как минимум меньше нужно набирать букв и легче читается код.
Могу только предположить, что может отсутствовать совместимость между диалектами VBA (BASIC) либо она (несовместимость) может возникнуть в будущем. Вряд ли это влияет на скорость выполнения кода.MCH
Я использую оба варианта: "суффиксный" - когда код пишется наспех (потому что быстрее один символ поставить, чем два AS, и потом еще из списка выбирать тип) и обычный в остальных случаях - он ИМХО более удобочитаемый
Кроме того, не для всех типов есть сокращения
А на скорость выполнения кода влияет, хотя и немного. По-моему у того же Уокенбаха (могу ошибаться) читал что компилятор сокращения приводит к нормальному виду и на это тратится ресурс. Но составлять он должен такие милимикронные доли секунд, что им можно пренебречь)
Поделюсь своим ИМХО)
Я использую оба варианта: "суффиксный" - когда код пишется наспех (потому что быстрее один символ поставить, чем два AS, и потом еще из списка выбирать тип) и обычный в остальных случаях - он ИМХО более удобочитаемый
Кроме того, не для всех типов есть сокращения
А на скорость выполнения кода влияет, хотя и немного. По-моему у того же Уокенбаха (могу ошибаться) читал что компилятор сокращения приводит к нормальному виду и на это тратится ресурс. Но составлять он должен такие милимикронные доли секунд, что им можно пренебречь)Serge_007
а есть ли другая аргументация, кроме ссылки на советы Уокенбаха
Где-то читал, что все эти сокращения, типа & вместо As Long или [A1:A10] вместо Range("A1:A10").Value не то чтобы сильно вредят, но пользы точно не приносят - что-то там происходит в момент компиляции. Т.е. другой аргументации нет. Но Уокенбаху все же верю
а есть ли другая аргументация, кроме ссылки на советы Уокенбаха
Где-то читал, что все эти сокращения, типа & вместо As Long или [A1:A10] вместо Range("A1:A10").Value не то чтобы сильно вредят, но пользы точно не приносят - что-то там происходит в момент компиляции. Т.е. другой аргументации нет. Но Уокенбаху все же верю nilem