🔹 Лямбда-выражения в PascalABC.NET: преобразования, условия и проекцииЛямбда-выражения в PascalABC.NET дают возможность упростить и улучшить код. Важно понимать, что лямбда-выражения делятся на три основные группы: лямбда-преобразования, лямбда-условия и лямбда-проекции. Давайте разберем каждый вид с примерами.
1.
Лямбда-преобразованияЛямбда-преобразование используется для преобразования данных. Оно может оставлять тип данных без изменений или переводить элементы в другой тип. Рассмотрим оба варианта:
Преобразование к тому же типу. В этом примере каждый элемент массива возводится в квадрат, оставаясь числом.
var a := Arr(1, 2, 3, 4, 5);
var squares := a.Select(x -> x * x); // Числа преобразуются в их квадраты
a := squares.ToArray; // Результат можно присвоить тому же массиву
Println(squares); // Вывод: [1, 4, 9, 16, 25]
Преобразование к другому типу. Следующий пример показывает перевод чисел в строки, представляя каждое число текстом:
var a := Arr(1, 2, 3, 4, 5);
var strValues := a.Select(x -> x.ToString); // Числа преобразуются в строки
Println(strValues); // Вывод: ['1', '2', '3', '4', '5']
В обоих случаях метод Select позволяет эффективно преобразовывать данные: в первом случае, чтобы получить квадраты чисел, во втором — текстовое представление чисел.
2.
Лямбда-условияЛямбда-условия применяются для фильтрации элементов по критерию. В примере ниже отбираются только четные числа:
var a := Arr(1, 2, 3, 4, 5, 6);
var evenNumbers := a.Where(x -> x mod 2 = 0); // Отбираются только чётные числа
Println(evenNumbers); // Вывод: [2, 4, 6]
Метод Where использует условие x -> x mod 2 = 0, чтобы выбрать только числа, делящиеся на 2 без остатка.
3.
Лямбда-проекцииЛямбда-проекция применяется, когда нужно извлечь часть составного объекта. В примере ниже из массива кортежей извлекаются только названия фруктов:
var items := Arr(('apple', 1.5), ('banana', 1.2), ('cherry', 0.9));
var fruitNames := items.Select(x -> x[0]); // Извлекается только название фрукта
Println(fruitNames); // Вывод: ['apple', 'banana', 'cherry']
Метод Select создает проекцию x -> x[0], возвращая первую часть кортежа x.
Подводим итоги:✦ Лямбда-преобразования помогают изменить значение элемента, сохраняя или меняя его тип.
✦ Лямбда-условия отбирают данные по критерию.
✦ Лямбда-проекции полезны для извлечения частей составных объектов.
Пользуйтесь этими возможностями, чтобы сделать ваш код лаконичнее и понятнее!
🚀