Комментарии 17
В PHP есть операторы с одной точкой, двумя, тремя и четырьмя. А как бы мог выглядеть с пятью?
:.:
как-то так
Почему именно точки? Есть же другие символы.
Варианты с точками с меньшей вероятностью будут вызывать коллизии в легаси пхп коде.
Любые другие символы, увы, уже используются так или иначе в более сложных конструкциях и парсинг будет более сложным - следовательно скажется на производительности вм.
Вероятно еще и размеры самих символов в таблице могут иметь значение, читаемость, семантика и что там еще волнует разработчиков языков и компиляторов к ним)
@,#,^,~ вроде вообще не используются.
Вероятно еще и размеры самих символов в таблице могут иметь значение, читаемость, семантика и что там еще волнует разработчиков языков и компиляторов к ним)
Не думаю, что большое количество точек позитивно скажется на читаемости.
Но для начала хотя бы знать, для каких операций они будут нужны.
По поводу структур данных.
С удивлением обнаружил что есть WeakMap, но нет WeakHashMap что сильно сужает количество кейсов для создания например кеша на основе WeakReference'ов.
Очень странное решение!
А почему нельзя сделать кеш на основе WeakMap или массива WeakReference'ов? Последнее разве и не будет WeakHashMap?
array<array-key,WeakReference<T>> -- GC будет чистить значение внутри WR, а сам массив будет расти потихоньку (если его не чистить руками, но в чём тогда смысл брать WR).
А на основе WeakMap -- там же объекты в ключах, значит идентификатор кешируемого объекта будет в значении, т.е. надо будет итерироваться чтобы найти нужное, т.е. O(n).
Ну для небольших карт это прокатит, но в целом решение не масштабируемое.
А ещё есть LinkedList, Hashmap (в виде массивов PHP), но нет LinkedHashMap.
спасибо )
Кажется мы обсуждаем операторы игры тетрис...
tuqqu/go-parser — Парсер Golang на PHP 8.1. Транслирует Golang-код в AST. Применение пока не ясно.
Как вариант написание неких лямбда функций в админке, чтоб потом быстро выполнять какие-то операции. Эта библиотека может подойти для валидации кода, чтоб не запускать отдельно линтеры и билдер Go.
PHP Дайджест № 221 (24 января – 7 февраля января 2022)