000175. Трюк с локальными массивами
Трюк с локальными массивами|В этом уроке Вы узнаете об одном трюке, который существенно сократит время написания однотипного кода.|wmysterio|wmysterio||||Всем привет! С Вамиwmysterio. В этом уроке Вы узнаете об одном интересном методе, который упростит написание кода с локальными массивами.
Как известно, каждый поток имеет свой набор локальных переменных, доступ к которым осуществляется с помощью символа @. Массивы же являются группой переменных из этого диапазона. Многие забывают, что мы можем использовать отдельно переменную из этого массива и обращаться как к обычной переменной. Этот трюк заключается как раз в этом - мы можем брать отдельную переменную из массива или формировать массивы из отдельных переменных, что идут последовательно.
Рассмотрим следующий код:
А теперь представьте, что нужно изменить тип маркера только одного элемента из массива. Что же нам теперь при необходимости менять значение 0@, чтобы добиться доступа к конкретной переменной?
А что будет, если нам нужна будет эта переменная везде, при этом у нас есть ещё некая работа с элементами массива по-отдельности? Естественно, такой метод нас не устроит! Значит, нам нужно использовать тот трюк, что написан выше. Для начала нужно разобраться какой диапазон актёров и маркеров содержит массив. В нашем случаи - это 5 актёров и 5 маркеров. Соответственно, диапазон актёров составляет последовательность из переменных: 10@ 11@ 12@ 13@ 14@, а диапазон маркеров - 20@ 21@ 22@ 23@ 24@
Формат массива всегда указывает количество переменных, их тип а также начальную переменную массива. Всё, что нам оставалось - это посчитать диапазон: 10 + 5 = 15. Поскольку итерация начинается с 0 а не с 1 в Sanny Builder, то число 15 уже не входит в диапазон, а последним элементом является 14. Немного математики и, по-аналогии, я так рассчитал диапазон для маркеров.
Теперь вернёмся к нашему примеру и попробуем изменить тип 3-го элемента массива. Начиная отсчёт с нуля, мы получили переменную 22@.
Как видите, мы сократили скрипт на 1 опкод. В крупных проектах этих команд наберётся целая куча, которая будет занимать существенное место по объёму и скрипт будет выполнять намного больше команд, чем требуется. Аналогичным образом, давайте сократим скрипт с созданием актёров:
Такой код намного легче читать, если знать этот трюк! Изначально скрипт имел размер 219 байт. После нашего исправления - 153 байта. Фактически, мы сэкономили 66 байт на наш скрипт. Оптимизация по размеру и быстродействию составляет 69%!!! И это только в небольшом скрипте. В крупных проектах эта цифра будет ещё больше.
Согласитесь, такой подход существенно улучшает производительность нашего кода а также упрощает его читаемость. Если немного потренироваться, то метод освоить не составит труда. Спасибо всем за внимание!|1421|1|0|68703011png
480360
320`240``||trjuk_s_lokalnymi_massivami|1509826424
Last updated
Was this helpful?