C# 8.0中的模式匹配相对C# 7.0来说有了进一步的增强,对于如下类: class Point{ public int X { get; } public int Y { get; } public Point(int x, int y) => (X, Y) = (x, y); public void Deconstruct(out int x, out int y) => (x, y) = (X, Y);} 首先来看C# 7.…
今天在CodePlex的Roslyn讨论区发现了一个帖子:Draft spec for records and pattern-matching in C#,估计MS计划在C# 6.0中支持模式匹配了. 设计草案的文档如下:Pattern Matching for C# ,看起来非常不错的样子. 模式匹配的缺席一直是C#的弱项,.Net语言中,F#是支持模式匹配的,但日常的编程过程中感觉还是C#这种瑞士军刀级的语言更为方便.这个升级还是非常给力的,不过估计又有一大批人要抱怨说看不懂了,又升级了神…
一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹配的基本格式如下: data match { case ... => 执行语句 case ... => 执行语句 case _ => 执行语句 } 其中,data表示将要进行模式匹配的对象,match是模式匹配的关键字,后面紧跟的{}中包含若干条匹配的方向,且只会匹配其中满足条件的第一条:…