Инструменты пользователя

Инструменты сайта


ru:autorun:documentation:objects

Объекты

Объект - это сущность, инкапсулирующая в себе некий объём информации. В обычном понимании содержит свойства, позволяющие получить или изменить состояние объекта, и методы, позволяющие выполнять действия над свойствами и содержимым объекта.

В скриптовых языках обычно используются объектные типы (например, массивы) с автоматическим контролем памяти, т.е. объект существует, пока на него ссылается хотя бы одна существующая переменная, а когда таких переменных не остается, объект уничтожается. К сожалению, в силу ограничений архитектуры Autorun, в настоящее время нет возможности сделать надёжную реализацию таких типов данных. Поэтому в Autorun необходимо явно освобождать более не требующиеся объекты с помощью специальной функции Free, что по принципу работы ближе к традиционным языкам программирования.

Поскольку добавление объектов в Autorun это значительной степени вынужденная мера, из всего многообразия принципов объектно-ориентированного программирования реализована только инкапсуляция. Autorun работает только с предопределёнными встроенными объектами. Создание своих объектов, добавление и изменение свойств и методов, наследование и т.д. недоступно и не планируется.

Работа с объектами во многом схожи с принципами, применяемыми в других языках программирования. При создании объекта возвращается специальное значение (дескриптор), позволяющее обращаться к данным объекта.

List

В Autorun в настоящий момент есть только один объект - индексированный список (массив), называемый List. Массив может быть только одномерным, но его элементы могут в свою очередь содержать дескрипторы других массивов, что позволяет имитировать многомерные массивы.

Массив создается с помощью функции List, возвращающей дескриптор массива.

Доступ к элементам массива возможен путем указания индекса в квадратных скобках после имени переменной, содержащей дескриптор массива:

arr = List('Item1', 'Item2', 'Item3')
a = arr[1] # ==> 'Item2'
arr[1] = 'New Item'
a = arr[1] # ==> 'New Item'

Список может содержать вложенные списки, но адресовать их напрямую нельзя. Необходимо предварительно сохранить дескриптор в промежуточную переменную:

arr = List('Item1', 'Item2', List('Subitem1', 'Subitem2'))
 
# correct
subarr = arr[2]
a = subarr[1] # ==> 'Subitem2'
 
# will not work
a = arr[2][1]

Использование синтаксиса с квадратными скобками несовместимо с командной записью переменных, но можно использовать вычисляемые строки:

arr = Array('Item1', 'Item2')
 
# correct
MsgBox %"arr[1]"
 
# will not work
MsgBox %arr[1]%

Максимальное число элементов списка — 1048575.

ru/autorun/documentation/objects.txt · Последнее изменение: 2024/03/27 11:17 — loopback

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki