Продолжил работу на массивами. Добавил указатели, чтобы не копировать содержимое массива при операциях с ним. Это потребовало создать таблицу со счётчиками ссылок (как-то раньше мне не приходило такое решение - хранить их именно в таблице). Добавил команду ".r", чтобы делать листинг этой таблицы.
Добавил команду append в класс Vector и задумался вот над каким вопросом: в каких случаях объект, используемый в качестве объекта команды, должен помещаться на стек.
Ведь команда
Boolean [] append true
создаёт массив типа [Boolean], для которого вызывается метод append true, но сам этот массив на стеке не сохраняется. А по идее должен бы. Но в каком месте это нужно делать - вот вопрос, на который мне предстоит себе ответить.
С командами
Boolean []
$* 1
всё просто. Первая создаёт массив типа [Boolean] и помещает указатель на него на стек.
Вторая берёт элементы со стека, создаёт массив и помещает элемент с индексом 1 на стек. По сути она делает то же самое, что и команда
$1
Затем мы можем для этого массива типа [Boolean] выполнить команду
$0 append true
И поскольку это указатель, то значение будет добавлено в массив на стеке.
Но если массив будет инициализироваться например командой
Boolean [] = $0
то мы ведь как бы ожидаем, что результат будет размещён на стеке. Вот, это мне и предстоит придумать, как это должно быть реализовано.
![Создание массива типа [Boolean] и добавление значения в него](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH2wXSR-g5H8iNwDuspQVAzaQ_S0m5jFCWPfeeGNg_xs81FvO6ba3v5k8M6GKakGgTWF-OwpA1Z7WSWAfz33vW4JEOj9PJDxoqU3U3bePQhzxVBD_m35VQ6EMatxzO6HDA04f8IIXBNUN8/w400-h258/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA+%25D1%258D%25D0%25BA%25D1%2580%25D0%25B0%25D0%25BD%25D0%25B0+2021-02-11+%25D0%25B2+15.49.35.png)
![Добавление значений в массив типа [Boolean]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhalnT34i1pmyTWfAk7B6S7FW6ise3HrSmQuuW8jF1Qwc_YKXfgmGP6BPFUv6lezgMDqY14evD_CISE2OK-mlu6PBSI5domWG8LcqsE2yzRmn537_LCRsPZDj4Ju4SMfy_cVEfjDNxyYO67/w400-h258/%25D0%25A1%25D0%25BD%25D0%25B8%25D0%25BC%25D0%25BE%25D0%25BA+%25D1%258D%25D0%25BA%25D1%2580%25D0%25B0%25D0%25BD%25D0%25B0+2021-02-11+%25D0%25B2+17.24.17.png)
Комментариев нет:
Отправить комментарий