/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
CodeExamples/Patterns/patterns-collection-matching3.pas
43 строки
1 KB
Alexandr Pogorelov
Улучшение паттерн матчинга (#1949)
24 май 2019, 10:04
Не верифицирован
24 май 2019, 10:04
8a432ee
Код
Авторство
О чём код?
type CardInfo = auto class public cardNumber: string; cv: integer; end; Person = class name: string; age: integer; card: List<CardInfo> := new List<CardInfo>(); constructor(name: string; age: integer; card: List<CardInfo>); begin self.name := name; self.age := age; self.card := card; end; procedure Deconstruct(var name: string; var age: integer; var card: List<CardInfo>); begin name := self.name; age := self.age; card := self.card; end; end; begin var cards := new List<CardInfo>(); cards.Add(new CardInfo('12345671', 321)); cards.Add(new CardInfo('12345672', 322)); cards.Add(new CardInfo('12345673', 323)); cards.Add(new CardInfo('12345674', 324)); var p := new Person('Вася', 21, cards); // match .. with match p with Person('Петя', _, _): print('Петя'); Person('Вася', _, [_, _, var x]): print(x); Person(name, _, [CardInfo(_, 321), .., CardInfo(_, 324)]): print(name); end; end.