Геннадий Малинин @HemulGM
Программист Delphi
Information
- Rating
- 1,675-th
- Location
- Екатеринбург, Свердловская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Fullstack Developer
Senior
From 180,000 ₽
Delphi
SQL
Database
Git
REST
C#
Python
OOP
MySQL
PHP
Те, кому нужны наносекунды - ставят. Да даже я, которого скорость устраивает и так - ставлю всегда. Так опрятнее. Я перед любыми параметрами ставлю, чтобы понимать, что изменять нет смысла. Скорости приложений Делфи, особенно в стоке, без всяких попыток оптимизации, могут позавидовать многие языки. Так что проблем вообще с этим нет.
Что ж вы за ерунду-то несете? const перед аргументом строки ставить пробовали?
Накидано на вентилятор, если честно.
Mozilla давно Rust разрабатывает. И Delphi тут не при чем. На нём они его и делают. Это раз.
Два, Delphi не только быстро компилирует, но и работает не хуже, чем C++. Медленнее, местами, не спорю, т.к. не все новые инструкции поддерживает компилятор (например, векторные), но то ли ещё будет.
А тяп-ляп и в продакшен - это вы про современный веб.
По той же причине, что и существует тот факт, что браузеры не на хромиуме вымерли или вымирают - одновременно с гуглом тянуть все стандарты сложно. Гугл хром слишком быстро и часто устанавливает новые стандарты, которые он поддерживает, а сторонние браузеры ещё нет.
А все текущие браузеры на основе хромиума тянут одну и ту же ветку, что позволяет всегда иметь все нововведения. А если переписать на другой язык, то придется самим вносить изменения в поддержку стандартов.
Чистых исходников Chromium на Delphi (как и на любом языке, кроме плюсов), нет. Есть просто Cef (обертки).
В современном "Паскале" (Delphi) есть это всё, кроме, наверно, LINQ (имеется ввиду именно особый синтаксис LINQ, а не только особая работа со списками как с датасетами) и срезов.
Не Шарп, а в дополнение к стандартным конструкциям Паскаля, некоторые конструкции, которые есть в C#. Типа лямбд, LINQ, срезов.
Здесь везде и идет речь о PascalАВС.NЕТ
Одной строкой нет, предикат может быть анонимной функцией, но не лямбдой. Лямбд пока нет. Т.е. в любом случае будет на 3 сроки больше. Но да, "одной" строкой можно.
Какой несуществующий код? Это тип определяет ограничения на количество
Чтоб к нему можно было привести указатель. И по этому указателю передавать. Мы говорим тому, кто принимает такой параметр, что указатель на данные - это всего 5 элементов интов, а с какого места начинать указываем в передаче параметра.
Это и будет без копирования) главное передавать по ссылке, а не присваивать в переменные. Передача и чтение будет как надо. Не переживай)
Всм не гуглится, этот тип я выше сам придумал
Ну, например, мне именно такое никогда не требовалось. А вот то что реализовано постоянно.
Enumerator - сам как предикат, класс, который его реализовал принимает твой предикат, а енумератор генерируется на его основе (твоего предиката). Enumerator - используется как результат работы списка с предикатом
Если мы впихнули в переменную, то уже копия. А задача стояла в передаче как параметр без копирования.
В моем примере я присвоил переменной значение, а не передал как указатель.
При передаче резолвить указатель не надо, а привести после к типу
Без копирования
Ты просто не понимаешь, что такое TEnumerable. Это просто абстрактный класс, который позволяет сверху реализовать методы Current и MoveNext. И более ничего. Сам он ничего не хранит
И так далее. Пример из боевого проекта:
Ну по твоей задаче достаточно просто передать указатель и длину, или привести указатель к массиву длинной 30-5. Копирования не будет, будет указатель на память.
TEnumerable<T> - абстракция, которая позволяет создать последовательность, даже не из последовательных данных. На его основе созданы все списки. В частности TList<T> который является предком многих других. И вот TList<T> имеет возможность задать предикат для поиска и сортировки.
Если честно, я не уверен, что Delphi отстает от C++ в RTL, но однозначно отстает в кол-ве сторонних библиотек. При чем отстает не столько по библиотекам решающим современные проблемы, сколько по тем, что создавались между 2005-2015 годами для C++. А это значительный пробел. И приходится эти библиотеки брать из C++.
Посмотрел почти весь список (конечно, только по названиям заголовков). Могу сказать, что Делфи вообще не отстает в этом. Возможно, даже обгоняет.
Очевидно, конечно, что полного пересечения всего что есть в плюсах в std и в delphi RTL нет. Но. В Делфи тоже очень много обобщенного программирования, работа с итераторами, диапазонами и прочим.
Вот тут кусочек по обобщенным спискам разного рода
Тут часть методов для работы с датой и временем
Там прям очень дохрена
Работа с символами
Со строками
А так же с сетью, регулярками, масками, аналитикой, хешем, json, файлами и фс, с кодировкой, объектами синхронизации, архивацией и ещё много-много всего.
Глянуть можно тут https://docwiki.embarcadero.com/Libraries/Athens/en/System