Re[2]: .NET 7 is Available Today
От: Jack128  
Дата: 10.11.22 08:44
Оценка: +3
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:


S>>.NET 7 is Available Today


S>Понравилось https://devblogs.microsoft.com/dotnet/welcome-to-csharp-11/

S>Шаблоны списков
S>

S>Сопоставление шаблонов — это одна из постоянных историй в C #, которую мы просто продолжаем заполнять. Сопоставление с образцом было введено в C # 7, и с тех пор оно превратилось в одну из самых важных и мощных управляющих структур в языке.

S>C # 11 добавляет шаблоны списков в историю. С помощью шаблонов списков вы можете рекурсивно применять шаблоны к отдельным элементам ввода, подобного списку, или к их диапазону. Давайте сразу перейдем к описанному выше общему алгоритму, переписанному как рекурсивный метод с использованием шаблонов списков:


S>

S>T AddAll<T>(params T[] elements) where T : IMonoid<T> =>
S> elements switch
S>{
S> [] => T.Zero,
S> [var first, ..var rest] => first + AddAll<T>(rest),
S>};

S>

S>Там много чего происходит, но в центре находится выражение switch с двумя падежами. Один случай возвращает ноль для пустого списка[], где Zeroопределяется интерфейсом. В другом случае первый элемент извлекается firstс var firstпомощью шаблона, а оставшаяся часть извлекается с restпомощью.., чтобы вырезать все оставшиеся элементы в var restшаблоне.

S>Подробнее о шаблонах списков читайте в документации. https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/patterns#list-patterns


Как это можно читать?? Ну ведь реально кровь из глаз течёт. Какие нафиг элементы ввода, подобные списку?? Что за switch с падежами?

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.