пятница, 19 февраля 2021 г.

Сделал calc_hash, exec и стековые индексы

В отличном настроении сделал функции calc_hash и exec, а также стековые индексы.

Функции calc_hash и exec

Глядя на этот пример, я подумал: а не добавить ли функцию call с параметром типа String, который бы использовался в качестве имени функции. Но тогда потребуется ещё один параметр - собственно параметр самой вызываемой функции.

Тогда я подумал: а что, если проверять вводимые строки, не являются ли они именем функции? - но и этот вариант пришлось отвергнуть как неприемлемый.

В принципе ничто не мешает реализовать вызов методов класса, используя токен имени функции в качестве индекса для вектора со свойствами класса. Но получится мешанина.

Например, у нас есть переменная типа ShortArray - массив чисел типа Short. У класса ShortArray есть какие-то методы, которые можно вызвать, используя в качестве объекта эту переменную. Но она ведь возвращает массив чисел. Получится, что мы рассматриваем её как массив, в котором эти числа и методы идут в перемешку. Что было бы странно.

Но так можно реализовать вызов статических методов класса - используя имя класса как константу с типом "вектор статических методов и свойств". Есть ли в этом смысл - пока не знаю. Память подсказывает, что я пробовал сделать так на PHP, но потом отказался от этой идеи. Не помню, почему.

Комментариев нет: