Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое enum в TypeScript и как его использовать?
Enum — это специальная конструкция в TypeScript, которая позволяет объявлять набор именованных констант. Это полезно для группировки связанных значений, таких как статусы или режимы работы.
Чем отличается enum от struct в Rust?
Struct используется для объединения данных, где все поля всегда присутствуют, что удобно для хранения сложных объектов с фиксированными свойствами. Enum, напротив, позволяет хранить одно значение из нескольких вариантов, что делает его полезным для представления состояния или выбора из нескольких опций.
Что такое перечисления (enumerations) в Swift?
Перечисления (enums) в Swift позволяют группировать связанные значения под одним типом. Они помогают писать типобезопасный код, исключая ошибки, возникающие при использовании строковых или числовых литералов. Вместо магических строк можно использовать предопределённые значения, что делает код более понятным и надёжным.
Что такое enum в C#?
Enum (перечисление) в C# — это тип данных, который позволяет задавать именованные целочисленные константы. Это облегчает работу с фиксированными наборами значений, такими как дни недели или направления.
Чем sealed-классы отличаются от enum-классов, и как у них работают конструкторы?
enum class задаёт фиксированный набор однотипных констант без полей состояния, тогда как sealed class позволяет иметь произвольные подклассы с параметризованными конструкторами и собственной логикой. У enum конструктор ограничен перечислением констант, а у sealed каждый подкласс может иметь свой конструктор и свойства.
Чем отличаются IEnumerable и IQueryable? Где применяется отложенное выполнение запросов?
Чем отличаются интерфейсы IEnumerable<T> и IQueryable<T> и для чего нужен QueryProvider?
В чём отличие сигнатур методов расширения LINQ (Where, OrderBy и т. д.) для IEnumerable<T> и IQueryable<T>?
Что означает indirect enum в Swift?
В чём заключается классическая проблема с IEnumerable и отложенным выполнением в LINQ?
Рейтинг:
2
Сложность:
6
IEnumerable<T> выполняет перебор элементов в памяти (in-memory) и поддерживает отложенное выполнение только LINQ-to-Objects. IQueryable<T> расширяет IEnumerable<T> и позволяет строить выражения, которые переводятся в запрос на удалённый источник (БД), выполняя отложенное (deferred) выполнение на стороне сервера при первом переборе.
Рейтинг:
2
Сложность:
5
IEnumerable<T> выполняет LINQ-запросы в памяти, а IQueryable<T> строит выражение (Expression Tree), которое провайдер (QueryProvider) переводит в запрос к внешнему источнику (БД, API). QueryProvider отвечает за парсинг выражения, генерацию SQL (или другого формата) и получение данных, обеспечивая deferred execution и оптимизацию выполнения на стороне источника.
Рейтинг:
2
Сложность:
6
Для IEnumerable<T> методы расширения принимают Func<T, bool> (делегат), обрабатывая элементы в памяти, а для IQueryable<T> — Expression<Func<T, bool>> (дерево выражения), которое провайдер анализирует для перевода в удалённый запрос. Остальные методы (Select, OrderBy) аналогично различаются по типу параметра, что определяет, где и как выполняется логика.
Рейтинг:
2
Сложность:
4
indirect позволяет enum хранить рекурсивные значения. Используется для создания сложных структур данных вроде связных списков.
Рейтинг:
2
Сложность:
7
Классическая проблема возникает, когда LINQ-запрос (который выполняется отложенно) оценивается более одного раза, особенно если источник данных или вычисления внутри запроса изменяются или являются "дорогими". Это может привести к неожиданным результатам (если данные изменились между оценками) или к серьёзным проблемам с производительностью (если сложные вычисления повторяются).
Рейтинг:
4
Сложность:
3
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
4
Рейтинг:
1
Сложность:
3
Рейтинг:
2
Сложность:
6