/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
CodeExamples/Patterns/patterns-type-matching1.pas
40 строк
930 B
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: CardInfo; constructor(name: string; age: integer; card: CardInfo); begin self.name := name; self.age := age; self.card := card; end; procedure Deconstruct(var name: string; var age: integer; var card: CardInfo); begin name := self.name; age := self.age; card := self.card; end; end; begin var a := new Person('Вася', 11, new CardInfo('12345678', 324)); // Расширенный is if a is Person(_, var age, CardInfo(_, var cv)) then Println(age, cv); // match .. with match a with Person('Петя', 12, CardInfo('12345678', var cv)): Println(cv); Person('Вася', _, CardInfo(cardNum, 324)): Println(cardNum); Person(_, _, CardInfo(_, x)): Println(x); end; end.